From: Subject: Unicauca Webmail :: Mail Date: Fri, 29 Oct 2010 10:16:53 -0500 MIME-Version: 1.0 Content-Type: multipart/related; type="text/html"; boundary="----=_NextPart_000_0000_01CB7752.68600D20" X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 This is a multi-part message in MIME format. ------=_NextPart_000_0000_01CB7752.68600D20 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Location: https://www.unicauca.edu.co/rc1/?_task=mail&_action=get&_mbox=INBOX&_uid=7983&_part=4&_frame=1 =EF=BB=BF Unicauca Webmail :: = Mail
3D"[webmail
Nombre del archivo PLANO AIRE ACONDICIONALDO.pdf [descarg= ar]
Tama=C3=B1o del archivo 15 KB
------=_NextPart_000_0000_01CB7752.68600D20 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: https://www.unicauca.edu.co/rc1/skins/defaulthjs/images/escudo1.jpg /9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCABKADEDASIA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD++rUt U0zRrSTUNX1Gw0qwhKCa91K7t7G0iLsEQSXN1JFChdyFQM43MQoySBX5gftAf8Ffv2RPgB4x0zwd fazr3j6S4HxSsNe8Q+BbSxvfDHgrxR8MtDOtL4W8UajqWoabcC/8avDf6T4MvPD9jr+m6tqmmahb rdL9mkZfzj/4LUfFHx/f/tL/ALP/AMHf+Ezi8HfDDw74di8fyQaNpUvi7VvF3jDWfEtnoGoeG/EP gm6hm0nWtJm8GpqcGmW11p3iFbmXUr2KCy88yabrHzn8Pv2I/Dvx+s7D4c+Gvg/o114t+KPhm1+O t34n+Nt/4s8PeJ9OvtX1fxbps9/4Vm+F/jLwn4Yt7fRoNGs/D/hvVNW8ByeM0hj1fztQ8NxC28N6 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 ------=_NextPart_000_0000_01CB7752.68600D20 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: https://www.unicauca.edu.co/rc1/skins/defaulthjs/common.css BODY { BACKGROUND-COLOR: #f6f6f6; MARGIN: 8px; COLOR: #000000 } BODY.iframe { BACKGROUND-COLOR: #fff; MARGIN: 0px } BODY.extwin { MARGIN: 10px } BODY { FONT-FAMILY: "Lucida Grande", Verdana, Arial, Helvetica, sans-serif; = COLOR: #000000; FONT-SIZE: 12px } TD { FONT-FAMILY: "Lucida Grande", Verdana, Arial, Helvetica, sans-serif; = COLOR: #000000; FONT-SIZE: 12px } TH { FONT-FAMILY: "Lucida Grande", Verdana, Arial, Helvetica, sans-serif; = COLOR: #000000; FONT-SIZE: 12px } SPAN { FONT-FAMILY: "Lucida Grande", Verdana, Arial, Helvetica, sans-serif; = COLOR: #000000; FONT-SIZE: 12px } DIV { FONT-FAMILY: "Lucida Grande", Verdana, Arial, Helvetica, sans-serif; = COLOR: #000000; FONT-SIZE: 12px } P { FONT-FAMILY: "Lucida Grande", Verdana, Arial, Helvetica, sans-serif; = COLOR: #000000; FONT-SIZE: 12px } H3 { FONT-FAMILY: "Lucida Grande", Verdana, Arial, Helvetica, sans-serif; = COLOR: #000000; FONT-SIZE: 12px } TH { FONT-WEIGHT: normal } H3 { FONT-FAMILY: "Lucida Grande", Verdana, Arial, Helvetica, sans-serif; = COLOR: #000000; FONT-SIZE: 18px } A { OUTLINE-STYLE: none; COLOR: #000000 } A:active { OUTLINE-STYLE: none; COLOR: #000000 } A:visited { OUTLINE-STYLE: none; COLOR: #000000 } A.button { COLOR: #000000; TEXT-DECORATION: none } A.button:visited { COLOR: #000000; TEXT-DECORATION: none } A.tab { COLOR: #000000; TEXT-DECORATION: none } A.tab:visited { COLOR: #000000; TEXT-DECORATION: none } A.axislist { COLOR: #000000; TEXT-DECORATION: none } A.tab { TEXT-ALIGN: center; WIDTH: 80px; DISPLAY: block } HR { BORDER-BOTTOM-STYLE: none; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: = #666666; BORDER-TOP-STYLE: none; HEIGHT: 1px; BORDER-LEFT-STYLE: none } INPUT { BORDER-BOTTOM: #666666 1px solid; BORDER-LEFT: #666666 1px solid; = PADDING-BOTTOM: 1px; BACKGROUND-COLOR: #ffffff; PADDING-LEFT: 3px; = PADDING-RIGHT: 3px; FONT-FAMILY: "Lucida Grande", Verdana, Arial, = Helvetica, sans-serif; FONT-SIZE: 9pt; BORDER-TOP: #666666 1px solid; = BORDER-RIGHT: #666666 1px solid; PADDING-TOP: 1px } TEXTAREA { BORDER-BOTTOM: #666666 1px solid; BORDER-LEFT: #666666 1px solid; = PADDING-BOTTOM: 1px; BACKGROUND-COLOR: #ffffff; PADDING-LEFT: 3px; = PADDING-RIGHT: 3px; FONT-FAMILY: "Lucida Grande", Verdana, Arial, = Helvetica, sans-serif; FONT-SIZE: 9pt; BORDER-TOP: #666666 1px solid; = BORDER-RIGHT: #666666 1px solid; PADDING-TOP: 1px } INPUT[type=3D'checkbox'] { PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; = BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px } INPUT[type=3D'radio'] { PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; = BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px } INPUT.button { BORDER-BOTTOM: #a4a4a4 1px solid; BORDER-LEFT: #a4a4a4 1px solid; = PADDING-LEFT: 8px; PADDING-RIGHT: 8px; BACKGROUND: = url(images/buttons/bg.gif) #f0f0f0 repeat-x; HEIGHT: 20px; COLOR: = #333333; FONT-SIZE: 12px; BORDER-TOP: #a4a4a4 1px solid; BORDER-RIGHT: = #a4a4a4 1px solid } INPUT.button:hover { COLOR: black } IMG { BEHAVIOR: url('skins/default/pngbehavior.htc') } .alttext { FONT-SIZE: 11px } .hint { COLOR: #666; FONT-SIZE: 11px } #header { Z-INDEX: 100; POSITION: absolute; WIDTH: 170px; HEIGHT: 40px; TOP: = 10px; LEFT: 20px } #taskbar { Z-INDEX: 2; POSITION: absolute; TEXT-ALIGN: right; PADDING-BOTTOM: = 10px; PADDING-LEFT: 0px; WIDTH: 600px; PADDING-RIGHT: 14px; WHITE-SPACE: = nowrap; BACKGROUND: url(images/taskbar.gif) no-repeat right top; HEIGHT: = 37px; TOP: 0px; RIGHT: 0px; PADDING-TOP: 10px } #taskbar A { PADDING-BOTTOM: 6px; PADDING-LEFT: 30px; PADDING-RIGHT: 16px; = BACKGROUND-REPEAT: no-repeat; COLOR: #666666; FONT-SIZE: 11px; = TEXT-DECORATION: none; PADDING-TOP: 6px } #taskbar A:active { PADDING-BOTTOM: 6px; PADDING-LEFT: 30px; PADDING-RIGHT: 16px; = BACKGROUND-REPEAT: no-repeat; COLOR: #666666; FONT-SIZE: 11px; = TEXT-DECORATION: none; PADDING-TOP: 6px } #taskbar A:visited { PADDING-BOTTOM: 6px; PADDING-LEFT: 30px; PADDING-RIGHT: 16px; = BACKGROUND-REPEAT: no-repeat; COLOR: #666666; FONT-SIZE: 11px; = TEXT-DECORATION: none; PADDING-TOP: 6px } #taskbar A:hover { COLOR: #333333 } A.button-mail { BACKGROUND-IMAGE: url(images/buttons/mail.gif) } A.button-addressbook { BACKGROUND-IMAGE: url(images/buttons/addressbook.gif) } A.button-settings { BACKGROUND-IMAGE: url(images/buttons/settings.gif) } A.button-logout { BACKGROUND-IMAGE: url(images/buttons/logout.gif) } #message { Z-INDEX: 5000; POSITION: absolute; DISPLAY: none; TOP: -1px; RIGHT: = 200px; LEFT: 200px; opacity: 0.85 } #message DIV { PADDING-BOTTOM: 8px; MARGIN: 0px auto; MIN-HEIGHT: 24px; PADDING-LEFT: = 46px; WIDTH: 400px; PADDING-RIGHT: 10px; HEIGHT: 24px; PADDING-TOP: 8px } #message DIV.notice { BORDER-BOTTOM: #c2d071 1px solid; BORDER-LEFT: #c2d071 1px solid; = BACKGROUND: url(images/display/info.png) #f7fdcb no-repeat 6px 3px; = BORDER-TOP: #c2d071 1px solid; BORDER-RIGHT: #c2d071 1px solid } #remote-objects-message { BORDER-BOTTOM: #c2d071 1px solid; BORDER-LEFT: #c2d071 1px solid; = BACKGROUND: url(images/display/info.png) #f7fdcb no-repeat 6px 3px; = BORDER-TOP: #c2d071 1px solid; BORDER-RIGHT: #c2d071 1px solid } #message DIV.error { BORDER-BOTTOM: #dc5757 1px solid; BORDER-LEFT: #dc5757 1px solid; = BACKGROUND: url(images/display/warning.png) #ef9398 no-repeat 6px 3px; = BORDER-TOP: #dc5757 1px solid; BORDER-RIGHT: #dc5757 1px solid } #message DIV.warning { BORDER-BOTTOM: #dc5757 1px solid; BORDER-LEFT: #dc5757 1px solid; = BACKGROUND: url(images/display/warning.png) #ef9398 no-repeat 6px 3px; = BORDER-TOP: #dc5757 1px solid; BORDER-RIGHT: #dc5757 1px solid } #message DIV.confirmation { BORDER-BOTTOM: #76c83f 1px solid; BORDER-LEFT: #76c83f 1px solid; = BACKGROUND: url(images/display/confirm.png) #a6ef7b no-repeat 6px 3px; = BORDER-TOP: #76c83f 1px solid; BORDER-RIGHT: #76c83f 1px solid } #message DIV.loading { BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; = BACKGROUND: url(images/display/loading.gif) #ebebeb no-repeat 6px 3px; = BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid } .splitter { POSITION: absolute; PADDING-BOTTOM: 2px; PADDING-LEFT: 2px; = PADDING-RIGHT: 2px; BACKGROUND: url(images/dimple.png) no-repeat center = 50%; PADDING-TOP: 2px } .splitter-h { BACKGROUND-POSITION: center 2px; CURSOR: n-resize } .splitter-v { BACKGROUND-POSITION: 1px center; CURSOR: e-resize } .boxtitle { BACKGROUND-IMAGE: url(images/listheader_aqua.gif); BORDER-BOTTOM: #999 = 1px solid; PADDING-BOTTOM: 3px; BACKGROUND-COLOR: #ebebeb; PADDING-LEFT: = 20px; PADDING-RIGHT: 20px; HEIGHT: 12px !important; COLOR: #333; = FONT-SIZE: 11px; FONT-WEIGHT: bold; PADDING-TOP: 4px } .radios-left LABEL { PADDING-LEFT: 0.3em } TABLE.records-table THEAD TR TD { BACKGROUND-IMAGE: url(images/listheader_aqua.gif); BORDER-BOTTOM: = #999999 1px solid; PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #ebebeb; = PADDING-LEFT: 4px; PADDING-RIGHT: 4px; HEIGHT: 20px; COLOR: #333333; = FONT-SIZE: 11px; VERTICAL-ALIGN: middle; FONT-WEIGHT: bold; PADDING-TOP: = 0px } TABLE.records-table TBODY TR TD { BORDER-BOTTOM: #ebebeb 1px solid; TEXT-ALIGN: left; PADDING-BOTTOM: = 2px; PADDING-LEFT: 4px; PADDING-RIGHT: 4px; WHITE-SPACE: nowrap; HEIGHT: = 16px; FONT-SIZE: 11px; OVERFLOW: hidden; PADDING-TOP: 2px } TABLE.records-table TR { BACKGROUND-COLOR: #ffffff } TABLE.records-table TR.selected TD { BACKGROUND-COLOR: #cc3333; COLOR: #ffffff } TABLE.records-table TR.focused TD { =09 } TABLE.records-table TR.unfocused TD { BACKGROUND-COLOR: #929292; COLOR: #ffffff } #quicksearchbar { POSITION: absolute; TEXT-ALIGN: right; WIDTH: 182px; BACKGROUND: = url(images/searchfield.gif) no-repeat left top; HEIGHT: 20px; TOP: 60px; = RIGHT: 30px } #quicksearchbar A { POSITION: absolute; TOP: 3px; RIGHT: 4px; TEXT-DECORATION: none } #quicksearchbar IMG { VERTICAL-ALIGN: middle } #quicksearchbox { POSITION: absolute; BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; = BORDER-RIGHT-STYLE: none; PADDING-LEFT: 0px; WIDTH: 140px; = PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; FONT-SIZE: 11px; = BORDER-LEFT-STYLE: none; TOP: 2px; PADDING-TOP: 0px; LEFT: 20px } UNKNOWN { BACKGROUND-IMAGE: none } UNKNOWN { TOP: 5px } UNKNOWN { WIDTH: 180px; TOP: 0px; RIGHT: 1px; LEFT: auto } #rcversion { POSITION: absolute; TEXT-ALIGN: center; FONT-VARIANT: small-caps; = WIDTH: 160px; COLOR: #999999; FONT-SIZE: x-small; TOP: 67px; = FONT-WEIGHT: normal; LEFT: 20px } #rcmdraglayer { BORDER-BOTTOM: #999999 1px solid; FILTER: = progid:DXImageTransform.Microsoft.Alpha(opacity=3D70); BORDER-LEFT: = #999999 1px solid; PADDING-BOTTOM: 3px; BACKGROUND-COLOR: #f9f9f9; = PADDING-LEFT: 8px; WIDTH: 300px; PADDING-RIGHT: 8px; FONT-SIZE: 11px; = BORDER-TOP: #999999 1px solid; BORDER-RIGHT: #999999 1px solid; = PADDING-TOP: 3px; opacity: 0.7; -moz-opacity: 0.7 } A.rcmContactAddress { TEXT-DECORATION: none } A.rcmContactAddress:hover { TEXT-DECORATION: underline } #rcmKSearchpane { BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; = BACKGROUND-COLOR: #f9f9f9; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: = #cccccc 1px solid } #rcmKSearchpane UL { PADDING-BOTTOM: 2px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: = 2px; PADDING-RIGHT: 2px; LIST-STYLE-IMAGE: none; PADDING-TOP: 2px } #rcmKSearchpane UL LI { PADDING-LEFT: 8px; PADDING-RIGHT: 8px; WHITE-SPACE: nowrap; HEIGHT: = 16px; FONT-SIZE: 11px; PADDING-TOP: 2px } #rcmKSearchpane UL LI.selected { BACKGROUND-COLOR: #cc3333; COLOR: #ffffff } ------=_NextPart_000_0000_01CB7752.68600D20 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: https://www.unicauca.edu.co/rc1/skins/defaulthjs/mail.css #messagetoolbar { POSITION: absolute; WHITE-SPACE: nowrap; HEIGHT: 35px; TOP: 36px; = RIGHT: 200px; LEFT: 200px } #messagetoolbar A { PADDING-RIGHT: 10px } #messagetoolbar SELECT { FONT-FAMILY: "Lucida Grande", Verdana, Arial, Helvetica, sans-serif; = COLOR: #333333; FONT-SIZE: 11px } #messagetoolbar SELECT.mboxlist { POSITION: absolute; TOP: 10px; LEFT: 375px } #messagetoolbar SELECT.mboxlist OPTION { PADDING-LEFT: 15px } #messagetoolbar SELECT.mboxlist OPTION[value=3D'0'] { PADDING-LEFT: 2px } #markmessagemenu { Z-INDEX: 240; BORDER-BOTTOM: #ccc 1px solid; POSITION: absolute; = BORDER-LEFT: #ccc 1px solid; PADDING-BOTTOM: 1px; BACKGROUND-COLOR: = #f9f9f9; PADDING-LEFT: 1px; WIDTH: auto; PADDING-RIGHT: 1px; VISIBILITY: = hidden; BORDER-TOP: #ccc 1px solid; TOP: 32px; BORDER-RIGHT: #ccc 1px = solid; PADDING-TOP: 1px; LEFT: 90px; opacity: 0.9 } #markmessagemenu2 { Z-INDEX: 240; BORDER-BOTTOM: #ccc 1px solid; POSITION: absolute; = BORDER-LEFT: #ccc 1px solid; PADDING-BOTTOM: 1px; BACKGROUND-COLOR: = #f9f9f9; PADDING-LEFT: 1px; WIDTH: auto; PADDING-RIGHT: 1px; VISIBILITY: = hidden; BORDER-TOP: #ccc 1px solid; TOP: 50px; BORDER-RIGHT: #ccc 1px = solid; PADDING-TOP: 1px; LEFT: 90px; opacity: 0.9 } UL.toolbarmenu { PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: = 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px } UL.toolbarmenu LI { MIN-WIDTH: 130px; WIDTH: auto !important; WHITE-SPACE: nowrap; = FONT-SIZE: 11px } UL.toolbarmenu LI A { PADDING-BOTTOM: 3px; PADDING-LEFT: 12px; PADDING-RIGHT: 8px; DISPLAY: = block; COLOR: #a0a0a0; TEXT-DECORATION: none; PADDING-TOP: 2px } UL.toolbarmenu LI A.active:hover { BACKGROUND-COLOR: #ddd } #listcontrols { POSITION: absolute; WIDTH: 500px; HEIGHT: 16px; FONT-SIZE: 11px; TOP: = 100px; LEFT: 200px } #listcontrols A { COLOR: #999999; FONT-SIZE: 11px; TEXT-DECORATION: none } #listcontrols A:active { COLOR: #999999; FONT-SIZE: 11px; TEXT-DECORATION: none } #listcontrols A:visited { COLOR: #999999; FONT-SIZE: 11px; TEXT-DECORATION: none } #mailboxcontrols A { COLOR: #999999; FONT-SIZE: 11px; TEXT-DECORATION: none } #mailboxcontrols A:active { COLOR: #999999; FONT-SIZE: 11px; TEXT-DECORATION: none } #mailboxcontrols A:visited { COLOR: #999999; FONT-SIZE: 11px; TEXT-DECORATION: none } TD.formlinks A { COLOR: #999999; FONT-SIZE: 11px; TEXT-DECORATION: none } TD.formlinks A:visited { COLOR: #999999; FONT-SIZE: 11px; TEXT-DECORATION: none } #listcontrols A.active { COLOR: #cc0000 } #listcontrols A.active:active { COLOR: #cc0000 } #listcontrols A.active:visited { COLOR: #cc0000 } #mailboxcontrols A.active { COLOR: #cc0000 } #mailboxcontrols A.active:active { COLOR: #cc0000 } #mailboxcontrols A.active:visited { COLOR: #cc0000 } UL.toolbarmenu LI A.active { COLOR: #cc0000 } UL.toolbarmenu LI A.active:active { COLOR: #cc0000 } UL.toolbarmenu LI A.active:visited { COLOR: #cc0000 } TD.formlinks A { COLOR: #cc0000 } TD.formlinks A:visited { COLOR: #cc0000 } #listcontrols A.active:hover { TEXT-DECORATION: underline } #mailboxcontrols A.active:hover { TEXT-DECORATION: underline } #messagecountbar { POSITION: absolute; TEXT-ALIGN: right; WIDTH: 300px; BOTTOM: 16px; = WHITE-SPACE: nowrap; HEIGHT: 20px; RIGHT: 30px } #messagecountbar SPAN { COLOR: #333333; FONT-SIZE: 11px } #messagepartcontainer { POSITION: absolute; BOTTOM: 20px; TOP: 80px; RIGHT: 20px; LEFT: 20px } #mailcontframe { BORDER-BOTTOM: #999999 1px solid; POSITION: absolute; BORDER-LEFT: = #999999 1px solid; BACKGROUND-COLOR: #f9f9f9; ; WIDTH: = expression((parseInt(document.documentElement.clientWidth)-230)+'px'); = BOTTOM: 40px; ; HEIGHT: = expression((parseInt(document.documentElement.clientHeight)-125)+'px'); = OVERFLOW: auto; BORDER-TOP: #999999 1px solid; TOP: 115px; RIGHT: 30px; = BORDER-RIGHT: #999999 1px solid; LEFT: 200px } #mailpreviewframe { BORDER-BOTTOM: #999999 1px solid; POSITION: absolute; BORDER-LEFT: = #999999 1px solid; BACKGROUND-COLOR: #f9f9f9; ; WIDTH: = expression((parseInt(document.documentElement.clientWidth)-230)+'px'); = BOTTOM: 40px; ; HEIGHT: = expression((parseInt(document.documentElement.clientHeight)-135-document.= getElementById('mailcontframe').offsetHeight)+'px'); BORDER-TOP: #999999 = 1px solid; TOP: 305px; RIGHT: 30px; BORDER-RIGHT: #999999 1px solid; = LEFT: 200px } #messagecontframe { POSITION: absolute; ; WIDTH: = expression((parseInt(document.documentElement.clientWidth)-230)+'px'); = BOTTOM: 0px; ; HEIGHT: = expression((parseInt(document.documentElement.clientHeight)-135-document.= getElementById('mailcontframe').offsetHeight)+'px'); TOP: 0px; RIGHT: = 0px; LEFT: 0px } #messagepartframe { BORDER-BOTTOM: #999999 1px solid; BORDER-LEFT: #999999 1px solid; = BACKGROUND-COLOR: #f9f9f9; WIDTH: 100%; HEIGHT: 100%; ; HEIGHT: = expression(parseInt(document.getElementById('messagepartcontainer').offse= tHeight)+'px'); BORDER-TOP: #999999 1px solid; BORDER-RIGHT: #999999 1px = solid } #partheader { POSITION: absolute; HEIGHT: 40px; TOP: 10px; LEFT: 220px } #partheader TABLE TD { PADDING-LEFT: 2px; PADDING-RIGHT: 4px; FONT-SIZE: 11px; VERTICAL-ALIGN: = middle } #partheader TABLE TD.title { COLOR: #666666; FONT-WEIGHT: bold } #mailboxlist-header { BACKGROUND-IMAGE: url(images/listheader_aqua.gif); BORDER-BOTTOM: #999 = 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #ebebeb; MARGIN: 0px; = PADDING-LEFT: 10px; PADDING-RIGHT: 10px; DISPLAY: block; HEIGHT: 12px; = COLOR: #333333; FONT-SIZE: 11px; FONT-WEIGHT: bold; PADDING-TOP: 3px } #mailboxlist-container { BORDER-BOTTOM: #999 1px solid; POSITION: absolute; BORDER-LEFT: #999 = 1px solid; BACKGROUND-COLOR: #f9f9f9; WIDTH: 160px; BOTTOM: 40px; ; = HEIGHT: = expression((parseInt(document.documentElement.clientHeight)-125)+'px'); = OVERFLOW: auto; BORDER-TOP: #999 1px solid; TOP: 128px; BORDER-RIGHT: = #999 1px solid; LEFT: 20px } #redactarMensaje { POSITION: absolute; BACKGROUND-COLOR: #f9f9f9; WIDTH: 160px; BOTTOM: = 40px; ; HEIGHT: = expression((parseInt(document.documentElement.clientHeight)-125)+'px'); = OVERFLOW: auto; TOP: 85px; LEFT: 20px } #mailboxlist { PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: = 0px; WIDTH: 100%; PADDING-RIGHT: 0px; WHITE-SPACE: nowrap; HEIGHT: auto; = OVERFLOW: hidden; LIST-STYLE-IMAGE: none; PADDING-TOP: 0px } #mailboxlist LI { BORDER-BOTTOM: #ebebeb 1px solid; BACKGROUND: = url(images/icons/folder-closed.png) no-repeat 10px 1px; FONT-SIZE: 11px } #mailboxlist LI.inbox { BACKGROUND-IMAGE: url(images/icons/folder-inbox.png) } #mailboxlist LI.drafts { BACKGROUND-IMAGE: url(images/icons/folder-drafts.png) } #mailboxlist LI.sent { BACKGROUND-IMAGE: url(images/icons/folder-sent.png) } #mailboxlist LI.junk { BACKGROUND-IMAGE: url(images/icons/folder-junk.png) } #mailboxlist LI.trash { BACKGROUND-IMAGE: url(images/icons/folder-trash.png) } #mailboxlist LI A { PADDING-BOTTOM: 2px; PADDING-LEFT: 32px; DISPLAY: block; = TEXT-DECORATION: none; PADDING-TOP: 2px } #mailboxlist LI.unread { FONT-WEIGHT: bold } #mailboxlist LI.selected { BACKGROUND-COLOR: #929292 } #mailboxlist LI.droptarget LI.selected { BACKGROUND-COLOR: #929292 } #mailboxlist LI.selected > A { COLOR: #fff; FONT-WEIGHT: bold } #mailboxlist LI.droptarget LI.selected A { COLOR: #fff; FONT-WEIGHT: bold } #mailboxlist LI.droptarget { BACKGROUND-COLOR: #ffffa6 } #mailboxlist UL { PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #f9f9f9; LIST-STYLE-TYPE: none; = MARGIN: 0px; PADDING-LEFT: 15px; PADDING-RIGHT: 0px; = BACKGROUND-POSITION: 25px 1px; COLOR: blue; BORDER-TOP: #ebebeb 1px = solid; FONT-WEIGHT: normal; PADDING-TOP: 0px } #mailboxcontrols { POSITION: absolute; WIDTH: 170px; BOTTOM: 20px; HEIGHT: 16px; = FONT-SIZE: 11px; OVERFLOW: hidden; LEFT: 20px } BODY.messagelist { BACKGROUND-COLOR: #f9f9f9; MARGIN: 0px } #messagelist { WIDTH: 100%; ; WIDTH: = expression(parseInt(document.getElementById('mailcontframe').clientWidth)= +'px'); DISPLAY: table; TABLE-LAYOUT: fixed } UNKNOWN { TABLE-LAYOUT: auto } #messagelist THEAD TR TD { BACKGROUND-IMAGE: url(images/listheader_aqua.gif); BORDER-BOTTOM: = #999999 1px solid; PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #ebebeb; = PADDING-LEFT: 2px; PADDING-RIGHT: 4px; HEIGHT: 20px; COLOR: #333333; = FONT-SIZE: 11px; VERTICAL-ALIGN: middle; FONT-WEIGHT: bold; PADDING-TOP: = 0px } #messagelist THEAD TR TD.sortedASC { BACKGROUND-IMAGE: url(images/listheader_dark.gif) } #messagelist THEAD TR TD.sortedDESC { BACKGROUND-IMAGE: url(images/listheader_dark.gif) } #messagelist THEAD TR TD.sortedASC A { BACKGROUND: url(images/sort_asc.gif) no-repeat right top } #messagelist THEAD TR TD.sortedDESC A { BACKGROUND: url(images/sort_desc.gif) no-repeat right top } #messagelist THEAD TR TD A { WIDTH: auto !important; DISPLAY: block; COLOR: #333333; = TEXT-DECORATION: none } #messagelist TBODY TR TD { BORDER-BOTTOM: #ebebeb 1px solid; PADDING-BOTTOM: 2px; PADDING-LEFT: = 2px; TEXT-OVERFLOW: ellipsis; PADDING-RIGHT: 4px; WHITE-SPACE: nowrap; = HEIGHT: 16px; FONT-SIZE: 11px; OVERFLOW: hidden; CURSOR: pointer; = PADDING-TOP: 2px } #messagelist TBODY TR TD A { WHITE-SPACE: nowrap; COLOR: #000; TEXT-DECORATION: none } #messagelist COL { TEXT-ALIGN: left; DISPLAY: table-column; VERTICAL-ALIGN: middle } #messagelist TR TD.icon { WIDTH: 16px; VERTICAL-ALIGN: middle } #messagelist TR TD.subject { VERTICAL-ALIGN: middle; OVERFLOW: hidden } #messagelist TR TD.size { TEXT-ALIGN: right; WIDTH: 70px; VERTICAL-ALIGN: middle } #messagelist TR TD.from { WIDTH: 180px; VERTICAL-ALIGN: middle } #messagelist TR TD.to { WIDTH: 180px; VERTICAL-ALIGN: middle } #messagelist TR TD.date { WIDTH: 118px; VERTICAL-ALIGN: middle } #messagelist TR.message { BACKGROUND-COLOR: #ffffff } #messagelist TR.unread { BACKGROUND-COLOR: #ffffff; FONT-WEIGHT: bold } #messagelist TR.selected TD { BACKGROUND-COLOR: #cc3333; COLOR: #ffffff } #messagelist TR.unfocused TD { BACKGROUND-COLOR: #929292; COLOR: #ffffff } #messagelist TR.selected TD A { COLOR: #ffffff } #messagelist TR.unfocused TD A { COLOR: #ffffff } #messagelist TR.deleted TD A { COLOR: #cccccc } #messagelist TR.deleted TD { COLOR: #cccccc } #messagelist TR.deleted TD A { COLOR: #cccccc } #quotadisplay { COLOR: #666666; FONT-SIZE: 11px } #quotadisplay IMG { BORDER-BOTTOM: #666666 1px solid; BORDER-LEFT: #666666 1px solid; = MARGIN-LEFT: 4px; VERTICAL-ALIGN: middle; BORDER-TOP: #666666 1px solid; = BORDER-RIGHT: #666666 1px solid } #messageframe { BORDER-BOTTOM: #999 1px solid; POSITION: absolute; BORDER-LEFT: #999 = 1px solid; BACKGROUND-COLOR: #fff; ; WIDTH: = expression((parseInt(document.documentElement.clientWidth)-230)+'px'); = BOTTOM: 40px; ; HEIGHT: = expression((parseInt(document.documentElement.clientHeight)-125)+'px'); = OVERFLOW: auto; BORDER-TOP: #999 1px solid; TOP: 85px; RIGHT: 30px; = BORDER-RIGHT: #999 1px solid; LEFT: 200px } DIV.messageheaderbox { BORDER-BOTTOM: #ccc 1px solid; BORDER-LEFT: #ccc 1px solid; MARGIN: 6px = 8px 0px; BORDER-TOP: #ccc 1px solid; BORDER-RIGHT: #ccc 1px solid } TABLE.headers-table { BACKGROUND-COLOR: #ebebeb; WIDTH: 100%; TABLE-LAYOUT: fixed } #messagebody TABLE.headers-table { BORDER-BOTTOM: #ccc 1px solid; BORDER-LEFT: #ccc 1px solid; = BACKGROUND-COLOR: #f4f4f4; MARGIN: 6px 8px; WIDTH: auto; BORDER-TOP: = #ccc 1px solid; BORDER-RIGHT: #ccc 1px solid } TABLE.headers-table TR TD { BORDER-BOTTOM: #ffffff 1px solid; FONT-SIZE: 11px } TABLE.headers-table TD.header-title { TEXT-ALIGN: right; WIDTH: 80px; PADDING-RIGHT: 4px; WHITE-SPACE: = nowrap; COLOR: #666666; FONT-WEIGHT: bold } TABLE.headers-table TR TD.subject { WIDTH: 95%; FONT-WEIGHT: bold } #attachment-list { PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; MIN-HEIGHT: = 18px; PADDING-LEFT: 68px; PADDING-RIGHT: 0px; BACKGROUND: = url(images/icons/attachment.png) #dfdfdf no-repeat 52px 1px; ; HEIGHT: = expression(Math.min(18, parseInt(this.clientHeight))+'px'); = LIST-STYLE-IMAGE: none; PADDING-TOP: 0px } #attachment-list:after { DISPLAY: block; HEIGHT: 0px; VISIBILITY: hidden; CLEAR: both; = FONT-SIZE: 0px; CONTENT: "." } #attachment-list LI { PADDING-BOTTOM: 0px; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; FLOAT: = left; HEIGHT: 18px; FONT-SIZE: 11px; PADDING-TOP: 2px } #attachment-list LI A { TEXT-DECORATION: none } #attachment-list LI A:hover { TEXT-DECORATION: underline } #messagebody { POSITION: relative; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #ffffff; = MIN-HEIGHT: 300px } DIV.message-part { PADDING-BOTTOM: 10px; PADDING-LEFT: 8px; PADDING-RIGHT: 8px; = BORDER-TOP: #ccc 1px solid; PADDING-TOP: 10px } #messagebody DIV:first-child { BORDER-TOP-WIDTH: 0px } DIV.message-part A { COLOR: #0000cc } DIV.message-part DIV.pre { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: = 0px; FONT-FAMILY: monospace; WHITE-SPACE: pre; PADDING-TOP: 0px } DIV.message-part BLOCKQUOTE { BORDER-LEFT: blue 2px solid; PADDING-BOTTOM: 1px; BACKGROUND-COLOR: = #f6f6f6; MARGIN: 2px 0px; PADDING-LEFT: 10px; PADDING-RIGHT: 8px; COLOR: = blue; BORDER-RIGHT: blue 2px solid; PADDING-TOP: 1px } DIV.message-part BLOCKQUOTE BLOCKQUOTE { BORDER-LEFT: green 2px solid; COLOR: green; BORDER-RIGHT: green 2px = solid } DIV.message-part BLOCKQUOTE BLOCKQUOTE BLOCKQUOTE { BORDER-LEFT: #bb0000 2px solid; COLOR: #990000; BORDER-RIGHT: #bb0000 = 2px solid } #remote-objects-message { PADDING-BOTTOM: 6px; MARGIN: 8px 8px 0px; MIN-HEIGHT: 20px; = PADDING-LEFT: 46px; PADDING-RIGHT: 10px; DISPLAY: none; HEIGHT: 20px; = PADDING-TOP: 10px } #remote-objects-message A { PADDING-LEFT: 10px; COLOR: #666666 } #remote-objects-message A:hover { COLOR: #333333 } #priority-selector { PADDING-LEFT: 30px } #receipt-selector { PADDING-LEFT: 30px } #compose-container { POSITION: absolute; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: = 0px; ; WIDTH: = expression((parseInt(document.documentElement.clientWidth)-240)+'px'); = BOTTOM: 40px; PADDING-RIGHT: 0px; ; HEIGHT: = expression((parseInt(document.documentElement.clientHeight)-130)+'px'); = TOP: 90px; RIGHT: 40px; PADDING-TOP: 0px; LEFT: 200px } #compose-headers { WIDTH: 100% } #compose-headers TD.top { VERTICAL-ALIGN: top } #compose-headers TD.title { WIDTH: 80px !important; PADDING-RIGHT: 10px; WHITE-SPACE: nowrap; = COLOR: #666666; FONT-SIZE: 11px; FONT-WEIGHT: bold } #compose-subject TD.title { WIDTH: 80px !important; PADDING-RIGHT: 10px; WHITE-SPACE: nowrap; = COLOR: #666666; FONT-SIZE: 11px; FONT-WEIGHT: bold } #compose-body { WIDTH: 100%; ; WIDTH: expression('99%') } #compose-headers TD TEXTAREA { WIDTH: 100%; ; WIDTH: expression('99%') } #compose-headers TD INPUT { WIDTH: 100%; ; WIDTH: expression('99%') } #compose-headers TD TEXTAREA { HEIGHT: 38px } #compose-cc { DISPLAY: none } #compose-bcc { DISPLAY: none } #compose-replyto { DISPLAY: none } #compose-body { MARGIN-TOP: 5px; MIN-HEIGHT: 280px; FONT-FAMILY: "Courier New", = Courier, monospace; MARGIN-BOTTOM: 10px; HEIGHT: 90%; FONT-SIZE: 9pt } #compose-attachments { POSITION: absolute; WIDTH: 160px; TOP: 100px; LEFT: 20px } #compose-attachments UL { BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; = PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #f9f9f9; LIST-STYLE-TYPE: none; = MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: #cccccc = 1px solid; LIST-STYLE-IMAGE: none; BORDER-RIGHT: #cccccc 1px solid; = PADDING-TOP: 0px } #compose-attachments UL LI { BORDER-BOTTOM: #ebebeb 1px solid; PADDING-LEFT: 2px; PADDING-RIGHT: = 4px; WHITE-SPACE: nowrap; HEIGHT: 18px; FONT-SIZE: 11px; OVERFLOW: = hidden; PADDING-TOP: 2px } #attachment-title { PADDING-BOTTOM: 3px; PADDING-LEFT: 22px; PADDING-RIGHT: 0px; = BACKGROUND: url(images/icons/attachment.png) no-repeat left top; = PADDING-TOP: 0px } #attachment-form { Z-INDEX: 200; BORDER-BOTTOM: #cccccc 1px solid; POSITION: absolute; = BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 8px; BACKGROUND-COLOR: = #f9f9f9; PADDING-LEFT: 8px; PADDING-RIGHT: 8px; VISIBILITY: hidden; = BORDER-TOP: #cccccc 1px solid; TOP: 150px; BORDER-RIGHT: #cccccc 1px = solid; PADDING-TOP: 8px; LEFT: 20px } #attachment-form INPUT.button { MARGIN-TOP: 8px } ------=_NextPart_000_0000_01CB7752.68600D20 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Location: https://www.unicauca.edu.co/rc1/?_task=mail&_action=get&_mbox=INBOX&_uid=7983&_part=4 JVBERi0xLjYKJd6tvu8KMyAwIG9iago8PCAgL0xlbmd0aCAxNjEzIC9GaWx0ZXIgL0ZsYXRlRGVj b2RlIC9EZWNvZGVQYXJtcwo8PCAgL1ByZWRpY3RvciAxCj4+Cj4+CnN0cmVhbQp4nJVYy24dNwzd D9B/mB+wI+qtbZMiQIGgSL3oujWCtkHcIlk06N+XpMTHzDjJbRz4Ht1DUiTFoTjeYKefn19vE3z6 fQv3EPdAPwSg7iXsj0/b9nGLLeHXT1seZSD4MEGBnBAT6SDS+y/7X1tAo4HsT4D26/75O9ztPf36 cX/x08v9xd+PsH//6uW2xTTGnnJPuEussU/8YXvAVcvKtDyEmbimQTgmEPywbNHqydklhoObPgX2 aX/x6t0/fz6+e/3p13/3l6KaG5gbiJ0bk2kVhJm4FlgbnIM2HvUiZkllY+rN3CSse5EXqJh5L1j4 tgBUfKmq0edcAxeshDeDldCfXEo+iGOt3uoMHgvU0diZBN90Bmovzzj+jW1ShLRDAIqZsaY4xYAO hFiZCe6gUoauTI5hz6n0xeRoTM57Dq05axGGWhMXp7XFEHYMWRMG8ddSoEWwCuL/ZNod5bcy7auL KlKrK+Ya5qZP85FSBw46OXevQ6t1boxzDs6aMISNETnx4KiTsfqUifNYTO7iNXkKvcar1ySnzEGn 5KDWava+TWZ6QI+BeVDPOribPS4HnZjKigfbKMs9LQxpPWKZ5RZDGHifafmAgaJZ2lCvdjky9SXL /sqILwl7NlsQRq1NxmUdJGbv5TFmv88h5huarHOEMIyxjgXL1hjEjhG55eKZ6dEYxBcdOtbndQo6 bzoqJzq9ScmInOgoM8usZUmSY1xpVtap0YrpoFPDcEwpUZkipcmrPKoyMTS5/RY+dkNotUx87obQ sKkx1gJeXWpGQ9giINtPLhqL2utM5hQnM4doyoGxx+kUp2TtmptrBh7crpJp06GV6EiczDSLbfV2 sdYsNuv6X/Ctr8fLXWBTxxi7Bhcz2sWDienCwRx2OOMU58yTjthiyTo/zTtwzjweP8jgUt0NVofV RqpZfYxd2sbodU99RB185h0aB1ZQ6j07yzVxPU+NJu3gcgHptLZqKodx41UPFXMC84ZirKpQMSvK IHZGrw7IHLZK93YHjtkoqAqwbnooFEntkqecUxJmzCmCGcQ0CMzctj5zKNbCkGcVzEXd83xSpzMo NMdASLNDBQnrGOJciVToE69qbCgHc/6IaeIPE+MAMOaE3w54yTw4/8+ZufpVtafK/uKLMppByaYx +JKhDOHq+7BYgxIssi/UIOeEZHM9lgBICfB7kdnC0hoVY47Sw1STGBwgc8w3XoLcmtUoq9bZ/oBL 5DmjB52SwQI86DBzOO510czr4HRtcStbzGra83JIQ+dAxsbk0JUhPK9UKRI6ylK1SBjrO0/B50Ol CH/lzYlnOZlkCKc4PQeRhaMs8SQbislig4zKQK2ewSJVJjbP4I0pTOjdMaEVY7DlOiZVYyA4b8do wsBoPg46XWVS9AwMZfpIjuk9GFOyZzIYA8UzQXPAJ2hez7wlPmmgGZ/wzEGvxtBUbgwNacJE8Ezo yoQeHRPqMIYmTGNSMCZkY9Ad9Q0fu+KZEo2J1TOQlOm9OYbKXpncPZOKMcHlANrQHPATosy1SVhe +Vxcjhez7Bfv06WOD7ITB/fkxTiSMvjK7plipxvX9L5WUJTBWnIMNNuHepxjUjNmtfG5CqMrE1r0 TBnGpOSZGHTklBF8rToYU4pncjQGfPcZQXOgvcxOR09K80YryRtjzRuvSjZG88arlTfCljdeNdvH 8sarlTfGmjdaSd4Ya954tfLGWPPGq5U36s2WN16tvDEuxTPZ+rnljVdBc6B5e6aOtXYv1bpWwWoz hf9x2R0uIXknsWM8v5M883AUpHIJLEsYBys6MLyDEMdMelBwIkiBDwWHfrxgQoz8PbWJwXM3Ywht HWnBZp37vJIAmxZjvLholMmtB56gBsoM3gE7Jl7JnY8Q31Fx4hiBZBLO+4LZKu29fEV3GN82Yrpx I0J2Q6FNA+dB5LmhJdNwxmGhbCS9fuNpqenzaHK9pD9ud4Tv8D+28dL7fdlTyQk/Hp+2jB/8d+P7 EvDfHu9zp1dn+ZTvw33gT1k/bndnkbuzjbuzMiqpsAp9UfrO9rrIXMxcttoftre3/jW5Fp5gGDfo 7nVtMYyVwRcFWoXJwMTEfMR93m+4eIPg86aS/CoyMb/yyk6k9cf2Gzp60Vx2o+0xNZcnqrn/8Obl 9vY/oTLDUwplbmRzdHJlYW0KZW5kb2JqCjQgMCBvYmoKPDwgL1R5cGUgL0ZvbnREZXNjcmlwdG9y IC9Gb250TmFtZSAvVmVyZGFuYSAvRm9udEZhbWlseSAoVmVyZGFuYSkgL0ZvbnRXZWlnaHQgNDAw IC9Gb250QkJveCBbLTUwIC0yMDcgMTQ0NyAxMDAwXSAvQXNjZW50IDc2NSAvRGVzY2VudCAtMjA3 IC9DYXBIZWlnaHQgNzAwIC9GbGFncyA0MiAvSXRhbGljQW5nbGUgMCAvU3RlbVYgODAKPj4KZW5k b2JqCjUgMCBvYmoKPDwgL1R5cGUgL0ZvbnQgL1N1YnR5cGUgL1RydWVUeXBlIC9OYW1lIC9GMCAv QmFzZUZvbnQgL1ZlcmRhbmEgL0ZvbnREZXNjcmlwdG9yIDQgMCBSIC9FbmNvZGluZyAvV2luQW5z aUVuY29kaW5nIC9GaXJzdENoYXIgMzIgL0xhc3RDaGFyIDI1NSAvV2lkdGhzIDIgMCBSCj4+CmVu ZG9iago3IDAgb2JqCjw8ICAvTGVuZ3RoIDM2ODggL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0RlY29k ZVBhcm1zCjw8ICAvUHJlZGljdG9yIDEKPj4KPj4Kc3RyZWFtCnic5ZtfjxxJlcXfS9rvkI+s5PZk RNx7I+LRdBvkFYxh3AaB/OIx3llG7fHiYRnBpyf+5zlVXTbaVxiJvuWTv4iMiJOnMquiTm6r/33z y1MvPn13+svJx7Dt24eTZM2leOiFOgmlriKURd5+v/1w+uoXBbft/r9PP78/7Vv9rzTai0/fbV/d vf/bn9+9/+Wnt3/fbl9tX7283b76+M5tP7+7PZ28xriF6PN2/6eC3L87ub38+cfpZ/Ik6H9u99+f nt+ffvv/PLMvnczJtp/+owz/+/p//1VQ0y1YyKUbn7zr9cPp1VAkhaXUuinJhXqca0qtJbum/KX0 +n0ZzvbrUvx0qqqHI6XXD6uF2tP/nL5tg32MrO1Osvcx+mtn0smzpXDbjSvj9jGXs1fx2/0HnmT3 JK9J9hKtHGpSe1l1G6OUNoNEN5VWd8VSOS76ppQ6iIXHRy9mcGTu9cNsofV0ZfSVbO0OcvQx+mtn cow+hIvRixR+z/vF6NOTtAYfXWnY5Vg7iWVdWt2Xvipj8BblGPw+r599Xj+Hvo6dNjGfDqXVQ6nG dNOjvRXNRyu9nq1ICMdChHCpxIOJcZ3lPs9yb+073Tdxe5tQX8ba6t6KlMWwpH2q916Pha4+Kms/ lcMc1uZ4X4qU4TVFZbz6MGvZ15g/e136UK5t71zrrtez0erFqfQ6DC9a7cL17lpdBjcnHxRPyg7K joqmQ2n1oRgoRgqcgdIZKJyB0hkonIHSGQicgdAZCJyB0BkInIHQGYRUgtZ8W/RWq40ZrRaYSquX EmKxvvZF92HUj17d48hmv1FXe4yeGnXl6h7tRuijkf1MgKRs875cz6Ea/fx9gyKtWH0FuosY6FWR vUdqVVrdFFdP3yR2JRclXYk0F9NxZFmgVj/MFj4X6JVs7Q5y9DH6y+7xQR+R5qyMJZVcO480fWJh jd6VA2SP7WrutddjyafS66UUH8ge+pmp9LrPS2uhK3sE5XJJexu99V77uaSDujYvvUeF3hu5+n7c DHtxmezqHzHDfpiherG8Ffp5BfgkMB1TafVSqpd9Csudrb56BRQ1zyug1DavgEF95gqY5KhtTheR l1eAT2qfvwJ6olvugVBqzfsYdLld8lFaVLR6KS04NHdFXa8ff1PvR+YVN5rbqY+e0mcG3dvN0Ecf dD+TdGXQwZfEN3c5aP9EYdDFNfNOxiUPb1b1sp9vSU1Zb1auTmfUlnWtlnAl61zKcKTv9cNs4XN3 Mo2s7U6y9zH681cGDZd9uWVqd8znl708ccetjO1Scr9fREH3Xo+FlTX6pqzRBy0LVuf+w6jF71d8 rvE4sr339Nvu3kLr6croG1nbnWTvY/b3xdGHarDg0sXo/RM5Et9HWGCBIbalD2PyqxLGAo+l6CfW 6iByZelLNB9HyhrCaOEzfm9kbXeSvY/RX7jyNodLXxl77BbewftdjYygR5DJiCuX6uR3pddTaQld zj03xbTXV3O9cPvM9THi0ZO//n432m3k7KOS40yAPMv1erVLeVO9fDi0NeiKlNY6kn19642X7wR/ /PjD2zfbn96/2f766e23b7//OPHL++Nyv//TKe/1YS3V+4O0u162iZyHu3m4raPbTWmqD7S1rEcn k/XvIcG/e13/3lof/375MHCcjLbFa4fXsp/MPp/gx+HtSElpHlnLeiRN0hdvv3O7I9zTxSzev//0 7v2nN9v//vnHj2+2Hz9++6lM6D+uTS2vTKg3bOHyQf9373/469sf3h7rcT4FdYKPp53zZ6IvP0us wz/Ao9W/8Oi1HrbmVO9zqvtjlE/VndafaPdR90uqKRoPRSMpwCgxAowQI8DIYurlY/2CbO8tNt/c WyANJSspBxPq88ZSwu5BUVKAccQ4YBwxLh2KJ6ZFx1SI8cAEYgIwgZgAjBAjwIiRAky9+TgUBUaJ UWCMGAPGiLF8KJGYGudLISYCk4hJwCRiEjCZmAzMXPmhHIzMle93CbuAgv10v6keflNFvw2l+e1Q Dqb7bSrdb1NRUoBxxDhgHDHNb0PxxDS/TYUYD0wgJgATiAnACDECTPPboQDT/LYUBUaJUWCMGAPG iLF8KJGY5repEBOBScQkYBIxCZhMTAZmrjz4rSsyVx78NhXsZ/gN8k0p3xTyTSnfFPJNKd8U8k0p 3xTyTSnfFPJNKd8U8k0p3xTyTSnfFPJNKd8U8k0p3xTyTSnfFPJNKd8U8k0p3xTyTSnfFPJNKd8U 8k0p3xTyTSnfFPJNKd8U8k0p3xTyTSnfFPJNKd8U8k0p3xTyTSnfFPJNKd8E8k0o3wTyTSjfBPJN KN8E8k0o3wTyTSjfBPJNKN8E8k0o3wTyTSjfBPJNKN8E8k0o3wTyTSjfBPJNKN8E8k0o3wTyTSjf BPJNKN8E8k0o3wTyTSjfBPKNPsGZSiImAZOIScBkYjIwc+XBbwL5JpRvAvkmlG/jk5/+2UBGvw2l +e1QDqb7bSrdb1NRUoBxxDhgHDHNb0PxxPTHwHz47VCACcQEYAIxARghRoBpfjsUYJrflqLAKDEK jBFjwBgxlg8lEtP8NhViIjCJmARMIiYBk4nJwMyVB791RebKg9+mgv342Ssr8y6vfY4znmqgnrSV /oPrn4W22uv4aCXWp86htBqUCAoxDhhHjAPGIWO5fknXz7/X80lovBJQIinAKDEKjBLT74BHTYwp KMREYCIxEZhITAImEZOASTQHGZgcSAEmI+P3g/F7IEVBIca5Q3HE9G/gRk2MB8YT44HxxARgAjEB mMOJ9ZUAMz6wm6+AEWIUGCVGgTncK8tvvZ5+G68ElEgKMEqMAqPEdL+Nmpjut1ETE4GJxERgIjEJ mERMAibRHGRgpt/GK2AyMsNvow6kKCjEdL+Nmpjut1ET44HxxHhgPDEBmEBMAGbt/mivBJjpt/EK GCFGgVFiFJjDbxn8lslvGfyWyW8Z/JbJbxn8lslvGfyWyW8Z/JbJbxn8lslvGfyWyW8Z/JbJbxn8 lslvGfyWyW8Z/JbJbxn8lslvGfyWyW8Z/JbJbxn8lslvGfyWyW8Z/JbJbxn8lslvGfyWyW8Z/JbJ bxn8lslvGfyWyW8Z/Eb5Vr8en35r9fJbfyWgRFKAUWIUGCVm+K3XxAy/9ZqYCEwkJgITiUnAJGIS MInmIAOz/NZfAZORmX7rdSBFQSFm+K3XxAy/9ZoYD4wnxgPjiQnABGICMMtv7ZUAs/zWXwEjxCgw SowCc/gtw53dcmJ511WuXfty6ji+0do2VPUvrEVDr0HRcCgaSAFGiTFgjJjxlXlX8lTqtyt9zNp2 ounYNKLFtocipACjxCgwSoy6QxFi6l62pRAjwARiAjCBmABM25S2FA+MD6QA44hxwDhiHDA7MTsw OzHl8pqKZGSkOmQpgRRgEjEJmERMAiZGVCIwc+WHAowRY8AYMQaMEqPAKM1B79XAb0Z+M/Cbkd8M /GbkNwO/GfnNwG9GfjPwm5HfDPxm5DcDvxn5zcBvRn4z8JuR3wz8ZuQ3A78Z+c3Ab0Z+M/Cbkd8M /GbkNwO/GfnNwG9GfjPwm5HfDPxm5DcDvxn5zcBvRn4z8JuR3wz8ZuQ3A78Z+s0g34zyzSDfjPLN IN+M8s0g34zyzSDfjPLNIN+M8s0g34zyzSDfjPLNIN+M8s0g34zyzSDfjPLNIN+M8s0g34zyzSDf jPLNIN+M8s0g34zyzSDfjPLNIN+M8s0g34zyzSDfjPLNIN+M8s0g34zyzSDfjPLNIN+M8s0g34zy zSDfjPLNIN+M8s0g34zyzSDfjPLNIN+M8s0g34zyzSDfjPLNIN+M8s0g34zyzSDfjPLNIN+M8s0g 34zyzSDfjPLNIN+M8s0g34zyzSDfjPLNIN+M8s0g34zyzSDfjPLNIN+M8s0g34zyzSDfjPLNIN/W HMD2/K603R3zbrLtxRt3mVDPHSCpfk7cN5CV54Uwt22Nuu1UHsdgPTaZ0V6YIUm42Azz+vbYvVsm b+3Sd3Hu0h+1jP3C5/V4EKHuimRFKqa53t2Xt9HUnWqie/9Kwpe+JI4bflfeP1gJc1Ol38+UfTyQ 7UlYCTa+FNnLXT0rYz9a2w4mkqXPSCjKfLjqSr/Nb/Nwpvi2ecaVS/pMqZ/DV6U8sZ0r/QvC3dKF 4toZ1K3J5/2k1s9e7NRGAEp/hNpTvlBc303o9Vyp3zFUpaTluRL6SHNEJYwZmfOma65LtJKyLog1 7mPlxleha67WKuS52nN+lzIfqdaaHCvn8axR2fvOQb9G0I/Bes7tI1uvdqsz1x9l67O3jI20ra5r +jCOwfrY0Hsz9lWWv37P+lSrMWP58+7DKZU/dUXK3738b5OnluuGq/l3/vv+dG9/5+t3p5vzQ27O 27g5hwu0Dl4HXT365ujr4piLZi662l61nZk4dhfk33fsMfwbjf1yp6j3qX3t37fQuLyNX2f12rtj N75fm1MvfknmY+w/Mfow6vUzrdb6VGo9lS++0fAyec1PK52tL5Mfy+THMN3TkPbyDj3/+rPh+2OZ zg+5OW/j5hwu0Dp4HXT16Jujr4tjLpq56Kot05jwMW11c3T9/LFPKE51VxIo4zdfvtwj+fXTxdYa K7oi9cwO2u+n+i7Zeq+n8sitxJe3DvffNu4Xtxp37398+93/vf9x3nDE+iOp2D4TdnUDTqsfRt3f htohUMaxD7G8A8Wt3EOtbe5O9rURvf37wzhG1reZ5bSc9ZuK+tvAVh+KZFuK5OOOrf5Oa9yy1V9L hXS5sfw337z8w/Pb+5dvtrvnb7Znd89vXz+7ffHy6+evcBs0NFR/nOLs8odrz158Uxu4ffn13Yva wLO7l1da8KW80csWXn/94nfPv3n14u7ZXT2bX73Zbp+9vn12rZVyZ3PjH9kq/4tnt69/dd/beLM9 vytN1PMZzWzPf317+u0/AezsM+AKZW5kc3RyZWFtCmVuZG9iago4IDAgb2JqCjw8IC9UeXBlIC9G b250IC9TdWJ0eXBlIC9UeXBlMCAvQmFzZUZvbnQgL1ZlcmRhbmEgL0VuY29kaW5nIC9JZGVudGl0 eS1IIC9EZXNjZW5kYW50Rm9udHMgWwo8PCAvVHlwZSAvRm9udCAvU3VidHlwZSAvQ0lERm9udFR5 cGUyIC9CYXNlRm9udCAvVmVyZGFuYSAvRm9udERlc2NyaXB0b3IgNCAwIFIgL0NJRFN5c3RlbUlu Zm8KPDwgIC9SZWdpc3RyeSAoUERGQVVUT0NBRCkgL09yZGVyaW5nIChJbmRlbnRpdHkwKSAvU3Vw cGxlbWVudCAwCj4+IC9XIDYgMCBSCj4+XQo+PgplbmRvYmoKOSAwIG9iago8PCAgL0xlbmd0aCAy NDcwIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9EZWNvZGVQYXJtcwo8PCAgL1ByZWRpY3RvciAxCj4+ Cj4+CnN0cmVhbQp4nKVabW8bNxL+LuD+w37sAWnClxkuCRQBYjctcEBatFbugMJfFFtNFUh2ojgp er/+ZviynNGu4twdgsjjffjMkJzhsyTllR34368/ropxfLv6sHKjH8xwWEHCRMa+GGjBk82gMAke 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 ZjdykXcjF//1voI8ovF5JXvqSbb3xQaTeA/FTYRZW1ydrqFH5sW5fP2c5juim0+b48P97VZupCa/ ROPLUZzTXr//uMxA3gV5mG8ubrZ3D8f7L5Ho45R0rl+ZwN87zAibh/vlntG+iThI03fKudq+/XR3 e389vN99XO4gcePgIc2/lbndXg/Xw35zjhaIBvPpu9i92e/uH7Y3m+vhkidms1/2EALtX/h2+tTD b/d3Gw79eXs8M0k28LflMM73Pq+fUtT7u9vt3cfN7f1xufMun1Pd/G8Lvnlx3FLow+buYXu3O+yo +2fSOlIZeJvmtfBqd7e7Hj6+3+8ergeeQrc+U3/5lGXnmiA8nGPyJndh8BzOL4ezkSTAmTA/dKy3 x5vtsVQIz/omT8G5iY+OduXGzSvt4/b4eUczvj1TopHeoNTz+Tp4/fTmsXxVsp3n60BzVef6zMAd HagH5xcGfkHS8DYX2uXtmRXv+Z7BL4z2r1wknzb7Plw3cidjzAdYm6o90zM3JppBm+Z6y9l7+eHT 7n1f5S5CPuSa4rPaCz4jncn46uP8GL+Y1sylmp472OoO8V/0iEKkZWT5JbzwJzpoDIAxYzQG3fPl OqZtnI0LM/HH/eGNKiR3um7MOGN9bVDOkln4du92c9icCRltouOvezxk+bMj2nvnZwSVn+H5olu+ ufK8pfo6t+5NsbNb+kBuE4X74eWry9Uv/wEdX7eiCmVuZHN0cmVhbQplbmRvYmoKMiAwIG9iagog WyAzNTIgMzk0IDQ1OSA4MTggNjM2IDEwNzYgNzI3IDI2OSA0NTQgNDU0IDYzNiA4MTggMzY0IDQ1 NCAzNjQgNDU0IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA0NTQgNDU0 IDgxOCA4MTggODE4IDU0NSAxMDAwIDY4NCA2ODYgNjk4IDc3MSA2MzIgNTc1IDc3NSA3NTEgNDIx IDQ1NSA2OTMgNTU3IDg0MyA3NDggNzg3IDYwMyA3ODcgNjk1IDY4NCA2MTYgNzMyIDY4NCA5ODkg Njg1IDYxNSA2ODUgNDU0IDQ1NCA0NTQgODE4IDYzNiA2MzYgNjAxIDYyMyA1MjEgNjIzIDU5NiAz NTIgNjIzIDYzMyAyNzQgMzQ0IDU5MiAyNzQgOTczIDYzMyA2MDcgNjIzIDYyMyA0MjcgNTIxIDM5 NCA2MzMgNTkyIDgxOCA1OTIgNTkyIDUyNSA2MzUgNDU0IDYzNSA4MTggNTAwIDYzNiA1MDAgMjY5 IDYzNiA0NTkgODE4IDYzNiA2MzYgNjM2IDE1MjEgNjg0IDQ1NCAxMDcwIDUwMCA2ODUgNTAwIDUw MCAyNjkgMjY5IDQ1OSA0NTkgNTQ1IDYzNiAxMDAwIDYzNiA5NzcgNTIxIDQ1NCA5ODEgNTAwIDUy NSA2MTUgNTAwIDM5NCA2MzYgNjM2IDYzNiA2MzYgNDU0IDYzNiA2MzYgMTAwMCA1NDUgNjQ1IDgx OCA1MDAgMTAwMCA2MzYgNTQyIDgxOCA1NDIgNTQyIDYzNiA2NDIgNjM2IDM2NCA2MzYgNTQyIDU0 NSA2NDUgMTAwMCAxMDAwIDEwMDAgNTQ1IDY4NCA2ODQgNjg0IDY4NCA2ODQgNjg0IDk4NCA2OTgg NjMyIDYzMiA2MzIgNjMyIDQyMSA0MjEgNDIxIDQyMSA3NzUgNzQ4IDc4NyA3ODcgNzg3IDc4NyA3 ODcgODE4IDc4NyA3MzIgNzMyIDczMiA3MzIgNjE1IDYwNSA2MjAgNjAxIDYwMSA2MDEgNjAxIDYw MSA2MDEgOTU1IDUyMSA1OTYgNTk2IDU5NiA1OTYgMjc0IDI3NCAyNzQgMjc0IDYxMiA2MzMgNjA3 IDYwNyA2MDcgNjA3IDYwNyA4MTggNjA3IDYzMyA2MzMgNjMzIDYzMyA1OTIgNjIzIDU5MiAKXQpl bmRvYmoKNiAwIG9iagogWwoyMyAgWzYzNl0KMTUgIFszNjRdCjIyICBbNjM2XQoyNCAgWzYzNl0K MjAgIFs2MzZdCjI4ICBbNjM2XQoyNyAgWzYzNl0KMjUgIFs2MzZdCjE5ICBbNjM2XQoyMSAgWzYz Nl0KNjEgIFs2ODVdCjgyICBbNjA3XQo4MSAgWzYzM10KNjggIFs2MDFdCjMgIFszNTJdCjcxICBb NjIzXQo3MiAgWzU5Nl0KODcgIFszOTRdCjg1ICBbNDI3XQo2OSAgWzYyM10KNzcgIFszNDRdCjU1 ICBbNjE2XQo3MCAgWzUyMV0KODMgIFs2MjNdCjc2ICBbMjc0XQo4NiAgWzUyMV0KOTMgIFs1MjVd CjU3ICBbNjg0XQo1NiAgWzczMl0KMzggIFs2OThdCjM5ICBbNzcxXQo3NCAgWzYyM10KODggIFs2 MzNdCjUxICBbNjAzXQo1MyAgWzY5NV0KNTAgIFs3ODddCjYwICBbNjE1XQo0MCAgWzYzMl0KMzYg IFs2ODRdCjQ0ICBbNDIxXQo0OSAgWzc0OF0KNTQgIFs2ODRdCjQ3ICBbNTU3XQo0MSAgWzU3NV0K NTIgIFs3ODddCjIwNyAgWzc4N10KMTYgIFs0NTRdCjM3ICBbNjg2XQo3OSAgWzI3NF0KODkgIFs1 OTJdCjE3ICBbMzY0XQo4MCAgWzk3M10KNDggIFs4NDNdCjkyICBbNTkyXQo4NCAgWzYyM10KMTIw ICBbNjMzXQo3NSAgWzYzM10KNDMgIFs3NTFdCl0KZW5kb2JqCjEgMCBvYmoKPDwgL1R5cGUgL09D RyAvTmFtZSAoMCkKPj4KZW5kb2JqCjExIDAgb2JqCjw8IC9UeXBlIC9QYWdlIC9QYXJlbnQgMTAg MCBSIC9NZWRpYUJveCBbMCAwIDU5NSA4NDJdIC9Db250ZW50cyBbMyAwIFIKNyAwIFIKOSAwIFIK XSAvVlAgWwo8PCAgL01lYXN1cmUKPDwgIC9TdWJ0eXBlIC9STAogL0EgWwo8PCAgL0MgMSAvVSAo ICkKPj5dCiAvRCBbCjw8ICAvQyAxIC9VICggKQo+Pl0KIC9YIFsKPDwgIC9DIDAuMTAzNzYgL1Ug KCApCj4+XQogL1IgKCApIC9UeXBlIC9NZWFzdXJlCj4+IC9UeXBlIC9WaWV3cG9ydCAvQkJveCBb NDggNTAgNjExIDY2N10KPj5dIC9SZXNvdXJjZXMKPDwgIC9Qcm9jU2V0IFsgL1BERiAvVGV4dF0K IC9Gb250Cjw8ICAvRjEgNSAwIFIgL0YyIDggMCBSCj4+CiAvUHJvcGVydGllcwo8PCAgL29jMSAx IDAgUgo+Pgo+Pgo+PgplbmRvYmoKMTAgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzIC9LaWRzIFsxMSAw IFIKXSAvQ291bnQgMQo+PgplbmRvYmoKMTIgMCBvYmoKPDwgL1R5cGUgL0NhdGFsb2cgL1BhZ2Vz IDEwIDAgUiAvT0NQcm9wZXJ0aWVzCjw8ICAvT0NHcyBbIDEgMCBSXSAgL0QKPDwgIC9PcmRlciBb IDEgMCBSXSAvT0ZGIFtdCj4+Cj4+IC9QYWdlTW9kZSAvVXNlT0MgL1BhZ2VMYXlvdXQgL1Npbmds ZVBhZ2UKPj4KZW5kb2JqCjEzIDAgb2JqCjw8ICAvQ3JlYXRvciAoQXV0b0NBRCAyMDEwIDIwMTAg KDE4LjBzIChMTVMgVGVjaCkpKSAvVGl0bGUgKE1vZGVsKSAvUHJvZHVjZXIgKHBkZnBsb3QxMC5o ZGkgMTAuMC41NS4wKSAvQ3JlYXRpb25EYXRlIChEOjIwMTAxMDIxMDkyMTQwKSAvTW9kRGF0ZSAo RDoyMDEwMTAyMTA5MjE0MCkKPj4KZW5kb2JqCnhyZWYKMCAxNAowMDAwMDAwMDAwIDY1NTM1IGYg CjAwMDAwMTAyOTcgMDAwMDAgbiAKMDAwMDAwODc2OSAwMDAwMCBuIAowMDAwMDAwMDE1IDAwMDAw IG4gCjAwMDAwMDE3MzUgMDAwMDAgbiAKMDAwMDAwMTk0MiAwMDAwMCBuIAowMDAwMDA5Njk2IDAw MDAwIG4gCjAwMDAwMDIxMTQgMDAwMDAgbiAKMDAwMDAwNTkwOSAwMDAwMCBuIAowMDAwMDA2MTky IDAwMDAwIG4gCjAwMDAwMTA3MzcgMDAwMDAgbiAKMDAwMDAxMDMzOSAwMDAwMCBuIAowMDAwMDEw Nzk3IDAwMDAwIG4gCjAwMDAwMTA5NjAgMDAwMDAgbiAKdHJhaWxlcgo8PCAgL1NpemUgMTQgL1Jv b3QgMTIgMCBSIC9JbmZvIDEzIDAgUgo+PgpzdGFydHhyZWYKMTExNDMKJSVFT0YN ------=_NextPart_000_0000_01CB7752.68600D20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.unicauca.edu.co/rc1/program/js/common.js /*=0A= = +-----------------------------------------------------------------------+=0A= | RoundCube common js library = |=0A= | = |=0A= | This file is part of the RoundCube web development suite = |=0A= | Copyright (C) 2005-2007, RoundCube Dev, - Switzerland = |=0A= | Licensed under the GNU GPL = |=0A= | = |=0A= = +-----------------------------------------------------------------------+=0A= | Author: Thomas Bruederli = |=0A= = +-----------------------------------------------------------------------+=0A= =0A= $Id: common.js 1064 2008-02-13 05:33:41Z till $=0A= */=0A= =0A= // Constants=0A= var CONTROL_KEY =3D 1;=0A= var SHIFT_KEY =3D 2;=0A= var CONTROL_SHIFT_KEY =3D 3;=0A= =0A= =0A= /**=0A= * Default browser check class=0A= * @construcotr=0A= */=0A= function roundcube_browser()=0A= {=0A= this.ver =3D parseFloat(navigator.appVersion);=0A= this.appver =3D navigator.appVersion;=0A= this.agent =3D navigator.userAgent;=0A= this.name =3D navigator.appName;=0A= this.vendor =3D navigator.vendor ? navigator.vendor : '';=0A= this.vendver =3D navigator.vendorSub ? parseFloat(navigator.vendorSub) = : 0;=0A= this.product =3D navigator.product ? navigator.product : '';=0A= this.platform =3D String(navigator.platform).toLowerCase();=0A= this.lang =3D (navigator.language) ? navigator.language.substring(0,2) = :=0A= (navigator.browserLanguage) ? = navigator.browserLanguage.substring(0,2) :=0A= (navigator.systemLanguage) ? = navigator.systemLanguage.substring(0,2) : 'en';=0A= =0A= this.win =3D (this.platform.indexOf('win')>=3D0) ? true : false;=0A= this.mac =3D (this.platform.indexOf('mac')>=3D0) ? true : false;=0A= this.linux =3D (this.platform.indexOf('linux')>=3D0) ? true : false;=0A= this.unix =3D (this.platform.indexOf('unix')>=3D0) ? true : false;=0A= =0A= this.dom =3D document.getElementById ? true : false;=0A= this.dom2 =3D (document.addEventListener && = document.removeEventListener);=0A= =0A= this.ie =3D (document.all) ? true : false;=0A= this.ie4 =3D (this.ie && !this.dom);=0A= this.ie5 =3D (this.dom && this.appver.indexOf('MSIE 5')>0);=0A= this.ie6 =3D (this.dom && this.appver.indexOf('MSIE 6')>0);=0A= =0A= this.mz =3D (this.dom && this.ver>=3D5); // (this.dom && = this.product=3D=3D'Gecko')=0A= this.ns =3D ((this.ver<5 && this.name=3D=3D'Netscape') || = (this.ver>=3D5 && this.vendor.indexOf('Netscape')>=3D0));=0A= this.ns6 =3D (this.ns && parseInt(this.vendver)=3D=3D6); // (this.mz = && this.ns) ? true : false;=0A= this.ns7 =3D (this.ns && parseInt(this.vendver)=3D=3D7); // = this.agent.indexOf('Netscape/7')>0);=0A= this.safari =3D (this.agent.toLowerCase().indexOf('safari')>0 || = this.agent.toLowerCase().indexOf('applewebkit')>0);=0A= this.konq =3D (this.agent.toLowerCase().indexOf('konqueror')>0);=0A= =0A= this.opera =3D (window.opera) ? true : false;=0A= =0A= if(this.opera && window.RegExp)=0A= this.vendver =3D = (/opera(\s|\/)([0-9\.]+)/i.test(navigator.userAgent)) ? = parseFloat(RegExp.$2) : -1;=0A= else if(!this.vendver && this.safari)=0A= this.vendver =3D = (/(safari|applewebkit)\/([0-9]+)/i.test(this.agent)) ? = parseInt(RegExp.$2) : 0;=0A= else if((!this.vendver && this.mz) || this.agent.indexOf('Camino')>0)=0A= this.vendver =3D (/rv:([0-9\.]+)/.test(this.agent)) ? = parseFloat(RegExp.$1) : 0;=0A= else if(this.ie && window.RegExp)=0A= this.vendver =3D (/msie\s+([0-9\.]+)/i.test(this.agent)) ? = parseFloat(RegExp.$1) : 0;=0A= else if(this.konq && window.RegExp)=0A= this.vendver =3D (/khtml\/([0-9\.]+)/i.test(this.agent)) ? = parseFloat(RegExp.$1) : 0;=0A= =0A= =0A= // get real language out of safari's user agent=0A= if(this.safari && (/;\s+([a-z]{2})-[a-z]{2}\)/i.test(this.agent)))=0A= this.lang =3D RegExp.$1;=0A= =0A= this.dhtml =3D ((this.ie4 && this.win) || this.ie5 || this.ie6 || = this.ns4 || this.mz);=0A= this.vml =3D (this.win && this.ie && this.dom && !this.opera);=0A= this.pngalpha =3D (this.mz || (this.opera && this.vendver>=3D6) || = (this.ie && this.mac && this.vendver>=3D5) ||=0A= (this.ie && this.win && this.vendver>=3D5.5) || = this.safari);=0A= this.opacity =3D (this.mz || (this.ie && this.vendver>=3D5.5 && = !this.opera) || (this.safari && this.vendver>=3D100));=0A= this.cookies =3D navigator.cookieEnabled;=0A= =0A= // test for XMLHTTP support=0A= this.xmlhttp_test =3D function()=0A= {=0A= var activeX_test =3D new Function("try{var o=3Dnew = ActiveXObject('Microsoft.XMLHTTP');return true;}catch(err){return = false;}");=0A= this.xmlhttp =3D (window.XMLHttpRequest || (window.ActiveXObject && = activeX_test())) ? true : false;=0A= return this.xmlhttp;=0A= }=0A= }=0A= =0A= =0A= // static functions for event handling=0A= var rcube_event =3D {=0A= =0A= /**=0A= * returns the event target element=0A= */=0A= get_target: function(e)=0A= {=0A= e =3D e || window.event;=0A= return e && e.target ? e.target : e.srcElement;=0A= },=0A= =0A= /**=0A= * returns the event key code=0A= */=0A= get_keycode: function(e)=0A= {=0A= e =3D e || window.event;=0A= return e && e.keyCode ? e.keyCode : (e && e.which ? e.which : 0);=0A= },=0A= =0A= /**=0A= * returns modifier key (constants defined at top of file)=0A= */=0A= get_modifier: function(e)=0A= {=0A= var opcode =3D 0;=0A= e =3D e || window.event;=0A= =0A= if (bw.mac && e)=0A= {=0A= opcode +=3D (e.metaKey && CONTROL_KEY) + (e.shiftKey && SHIFT_KEY);=0A= return opcode; =0A= }=0A= if (e)=0A= {=0A= opcode +=3D (e.ctrlKey && CONTROL_KEY) + (e.shiftKey && SHIFT_KEY);=0A= return opcode;=0A= }=0A= },=0A= =0A= /**=0A= * Return absolute mouse position of an event=0A= */=0A= get_mouse_pos: function(e)=0A= {=0A= if (!e) e =3D window.event;=0A= var mX =3D (e.pageX) ? e.pageX : e.clientX;=0A= var mY =3D (e.pageY) ? e.pageY : e.clientY;=0A= =0A= if (document.body && document.all)=0A= {=0A= mX +=3D document.body.scrollLeft;=0A= mY +=3D document.body.scrollTop;=0A= }=0A= =0A= return { x:mX, y:mY };=0A= },=0A= =0A= /**=0A= * Add an object method as event listener to a certain element=0A= */=0A= add_listener: function(p)=0A= {=0A= if (!p.object || !p.method) // not enough arguments=0A= return;=0A= if (!p.element)=0A= p.element =3D document;=0A= =0A= if (!p.object._rc_events)=0A= p.object._rc_events =3D [];=0A= =0A= var key =3D p.event + '*' + p.method;=0A= if (!p.object._rc_events[key])=0A= p.object._rc_events[key] =3D function(e){ return = p.object[p.method](e); };=0A= =0A= if (p.element.addEventListener)=0A= p.element.addEventListener(p.event, p.object._rc_events[key], false);=0A= else if (p.element.attachEvent)=0A= {=0A= // IE allows multiple events with the same function to be applied to = the same object=0A= // forcibly detach the event, then attach=0A= p.element.detachEvent('on'+p.event, p.object._rc_events[key]);=0A= p.element.attachEvent('on'+p.event, p.object._rc_events[key]);=0A= }=0A= else=0A= p.element['on'+p.event] =3D p.object._rc_events[key];=0A= },=0A= =0A= /**=0A= * Remove event listener=0A= */=0A= remove_listener: function(p)=0A= {=0A= if (!p.element)=0A= p.element =3D document;=0A= =0A= var key =3D p.event + '*' + p.method;=0A= if (p.object && p.object._rc_events && p.object._rc_events[key]) {=0A= if (p.element.removeEventListener)=0A= p.element.removeEventListener(p.event, p.object._rc_events[key], = false);=0A= else if (p.element.detachEvent)=0A= p.element.detachEvent('on'+p.event, p.object._rc_events[key]);=0A= else=0A= p.element['on'+p.event] =3D null;=0A= }=0A= },=0A= =0A= /**=0A= * Prevent event propagation and bubbeling=0A= */=0A= cancel: function(evt)=0A= {=0A= var e =3D evt ? evt : window.event;=0A= if (e.preventDefault)=0A= e.preventDefault();=0A= if (e.stopPropagation)=0A= e.stopPropagation();=0A= =0A= e.cancelBubble =3D true;=0A= e.returnValue =3D false;=0A= return false;=0A= }=0A= =0A= };=0A= =0A= =0A= var rcube_layer_objects =3D new Array();=0A= =0A= =0A= /**=0A= * RoundCube generic layer (floating box) class=0A= *=0A= * @constructor=0A= */=0A= function rcube_layer(id, attributes)=0A= {=0A= this.name =3D id;=0A= =0A= // create a new layer in the current document=0A= this.create =3D function(arg)=0A= {=0A= var l =3D (arg.x) ? arg.x : 0;=0A= var t =3D (arg.y) ? arg.y : 0;=0A= var w =3D arg.width;=0A= var h =3D arg.height;=0A= var z =3D arg.zindex;=0A= var vis =3D arg.vis;=0A= var parent =3D arg.parent;=0A= var obj;=0A= =0A= obj =3D document.createElement('DIV');=0A= with(obj)=0A= {=0A= id =3D this.name;=0A= with(style)=0A= {=0A= position =3D 'absolute';=0A= visibility =3D (vis) ? (vis=3D=3D2) ? 'inherit' : 'visible' : = 'hidden';=0A= left =3D l+'px';=0A= top =3D t+'px';=0A= if(w) width =3D w+'px';=0A= if(h) height =3D h+'px';=0A= if(z) zIndex =3D z;=0A= }=0A= }=0A= =0A= if(parent) parent.appendChild(obj);=0A= else document.body.appendChild(obj);=0A= =0A= this.elm =3D obj;=0A= };=0A= =0A= =0A= // create new layer=0A= if(attributes!=3Dnull)=0A= {=0A= this.create(attributes);=0A= this.name =3D this.elm.id;=0A= }=0A= else // just refer to the object=0A= this.elm =3D document.getElementById(id);=0A= =0A= =0A= if(!this.elm)=0A= return false;=0A= =0A= =0A= // ********* layer object properties *********=0A= =0A= this.css =3D this.elm.style;=0A= this.event =3D this.elm;=0A= this.width =3D this.elm.offsetWidth;=0A= this.height =3D this.elm.offsetHeight;=0A= this.x =3D parseInt(this.elm.offsetLeft);=0A= this.y =3D parseInt(this.elm.offsetTop);=0A= this.visible =3D (this.css.visibility=3D=3D'visible' || = this.css.visibility=3D=3D'show' || this.css.visibility=3D=3D'inherit') ? = true : false;=0A= =0A= this.id =3D rcube_layer_objects.length;=0A= this.obj =3D 'rcube_layer_objects['+this.id+']';=0A= rcube_layer_objects[this.id] =3D this;=0A= =0A= =0A= // ********* layer object methods *********=0A= =0A= =0A= // move the layer to a specific position=0A= this.move =3D function(x, y)=0A= {=0A= this.x =3D x;=0A= this.y =3D y;=0A= this.css.left =3D Math.round(this.x)+'px';=0A= this.css.top =3D Math.round(this.y)+'px';=0A= }=0A= =0A= =0A= // move the layer for a specific step=0A= this.shift =3D function(x,y)=0A= {=0A= x =3D Math.round(x*100)/100;=0A= y =3D Math.round(y*100)/100;=0A= this.move(this.x+x, this.y+y);=0A= }=0A= =0A= =0A= // change the layers width and height=0A= this.resize =3D function(w,h)=0A= {=0A= this.css.width =3D w+'px';=0A= this.css.height =3D h+'px';=0A= this.width =3D w;=0A= this.height =3D h;=0A= }=0A= =0A= =0A= // cut the layer (top,width,height,left)=0A= this.clip =3D function(t,w,h,l)=0A= {=0A= this.css.clip=3D'rect('+t+' '+w+' '+h+' '+l+')';=0A= this.clip_height =3D h;=0A= this.clip_width =3D w;=0A= }=0A= =0A= =0A= // show or hide the layer=0A= this.show =3D function(a)=0A= {=0A= if(a=3D=3D1)=0A= {=0A= this.css.visibility =3D 'visible';=0A= this.visible =3D true;=0A= }=0A= else if(a=3D=3D2)=0A= {=0A= this.css.visibility =3D 'inherit';=0A= this.visible =3D true;=0A= }=0A= else=0A= {=0A= this.css.visibility =3D 'hidden';=0A= this.visible =3D false;=0A= }=0A= }=0A= =0A= =0A= // write new content into a Layer=0A= this.write =3D function(cont)=0A= {=0A= this.elm.innerHTML =3D cont;=0A= }=0A= =0A= =0A= // set the given color to the layer background=0A= this.set_bgcolor =3D function(c)=0A= {=0A= if(!c || c=3D=3D'#')=0A= c =3D 'transparent';=0A= =0A= this.css.backgroundColor =3D c;=0A= }=0A= =0A= =0A= // set the opacity of a layer to the given ammount (in %)=0A= this.set_opacity =3D function(v)=0A= {=0A= if(!bw.opacity)=0A= return;=0A= =0A= var op =3D v<=3D1 ? Math.round(v*100) : parseInt(v);=0A= =0A= if(bw.ie)=0A= this.css.filter =3D 'alpha(opacity:'+op+')';=0A= else if(bw.safari)=0A= {=0A= this.css.opacity =3D op/100;=0A= this.css.KhtmlOpacity =3D op/100;=0A= }=0A= else if(bw.mz)=0A= this.css.MozOpacity =3D op/100;=0A= }=0A= }=0A= =0A= =0A= // check if input is a valid email address=0A= // By Cal Henderson =0A= // http://code.iamcal.com/php/rfc822/=0A= function rcube_check_email(input, inline)=0A= {=0A= if (input && window.RegExp)=0A= {=0A= var qtext =3D '[^\\x0d\\x22\\x5c\\x80-\\xff]';=0A= var dtext =3D '[^\\x0d\\x5b-\\x5d\\x80-\\xff]';=0A= var atom =3D = '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\= x7f-\\xff]+';=0A= var quoted_pair =3D '\\x5c[\\x00-\\x7f]';=0A= var domain_literal =3D '\\x5b('+dtext+'|'+quoted_pair+')*\\x5d';=0A= var quoted_string =3D '\\x22('+qtext+'|'+quoted_pair+')*\\x22';=0A= var sub_domain =3D '('+atom+'|'+domain_literal+')';=0A= var word =3D '('+atom+'|'+quoted_string+')';=0A= var domain =3D sub_domain+'(\\x2e'+sub_domain+')*';=0A= var local_part =3D word+'(\\x2e'+word+')*';=0A= var addr_spec =3D local_part+'\\x40'+domain;=0A= var delim =3D '[,;\s\n]';=0A= var reg1 =3D inline ? new = RegExp('(^|<|'+delim+')'+addr_spec+'($|>|'+delim+')', 'i') : new = RegExp('^'+addr_spec+'$', 'i');=0A= return reg1.test(input) ? true : false;=0A= }=0A= return false;=0A= }=0A= =0A= =0A= // find a value in a specific array and returns the index=0A= function find_in_array()=0A= {=0A= var args =3D find_in_array.arguments;=0A= if(!args.length) return -1;=0A= =0A= var haystack =3D typeof(args[0])=3D=3D'object' ? args[0] : = args.length>1 && typeof(args[1])=3D=3D'object' ? args[1] : new Array();=0A= var needle =3D typeof(args[0])!=3D'object' ? args[0] : args.length>1 = && typeof(args[1])!=3D'object' ? args[1] : '';=0A= var nocase =3D args.length=3D=3D3 ? args[2] : false;=0A= =0A= if(!haystack.length) return -1;=0A= =0A= for(var i=3D0; i = |=0A= | Charles McNulty = |=0A= = +-----------------------------------------------------------------------+=0A= | Requires: common.js, list.js = |=0A= = +-----------------------------------------------------------------------+=0A= =0A= $Id: app.js 1170 2008-03-03 09:06:53Z thomasb $=0A= */=0A= =0A= =0A= var rcube_webmail_client;=0A= =0A= function rcube_webmail()=0A= {=0A= this.env =3D new Object();=0A= this.labels =3D new Object();=0A= this.buttons =3D new Object();=0A= this.gui_objects =3D new Object();=0A= this.commands =3D new Object();=0A= this.onloads =3D new Array();=0A= =0A= // create protected reference to myself=0A= rcube_webmail_client =3D this;=0A= this.ref =3D 'rcube_webmail_client';=0A= var ref =3D this;=0A= =0A= // webmail client settings=0A= this.dblclick_time =3D 500;=0A= this.message_time =3D 3000;=0A= =0A= this.identifier_expr =3D new RegExp('[^0-9a-z\-_]', 'gi');=0A= =0A= // mimetypes supported by the browser (default settings)=0A= this.mimetypes =3D new Array('text/plain', 'text/html', 'text/xml',=0A= 'image/jpeg', 'image/gif', 'image/png',=0A= 'application/x-javascript', = 'application/pdf',=0A= 'application/x-shockwave-flash');=0A= =0A= // default environment vars=0A= this.env.keep_alive =3D 60; // seconds=0A= this.env.request_timeout =3D 180; // seconds=0A= this.env.draft_autosave =3D 0; // seconds=0A= this.env.comm_path =3D './';=0A= this.env.bin_path =3D './bin/';=0A= this.env.blankpage =3D 'program/blank.gif';=0A= =0A= =0A= // set environment variable(s)=0A= this.set_env =3D function(p, value)=0A= {=0A= if (p !=3D null && typeof(p) =3D=3D 'object' && !value)=0A= for (var n in p)=0A= this.env[n] =3D p[n];=0A= else=0A= this.env[p] =3D value;=0A= };=0A= =0A= =0A= // add a localized label to the client environment=0A= this.add_label =3D function(key, value)=0A= {=0A= this.labels[key] =3D value;=0A= };=0A= =0A= =0A= // add a button to the button list=0A= this.register_button =3D function(command, id, type, act, sel, over)=0A= {=0A= if (!this.buttons[command])=0A= this.buttons[command] =3D new Array();=0A= =0A= var button_prop =3D {id:id, type:type};=0A= if (act) button_prop.act =3D act;=0A= if (sel) button_prop.sel =3D sel;=0A= if (over) button_prop.over =3D over;=0A= =0A= this.buttons[command][this.buttons[command].length] =3D button_prop; = =0A= };=0A= =0A= // register a specific gui object=0A= this.gui_object =3D function(name, id)=0A= {=0A= this.gui_objects[name] =3D id;=0A= };=0A= =0A= // execute the given script on load=0A= this.add_onload =3D function(f)=0A= {=0A= this.onloads[this.onloads.length] =3D f;=0A= };=0A= =0A= // initialize webmail client=0A= this.init =3D function()=0A= {=0A= var p =3D this;=0A= this.task =3D this.env.task;=0A= =0A= // check browser=0A= if (!bw.dom || !bw.xmlhttp_test())=0A= {=0A= this.goto_url('error', '_code=3D0x199');=0A= return;=0A= }=0A= =0A= // find all registered gui objects=0A= for (var n in this.gui_objects)=0A= this.gui_objects[n] =3D rcube_find_object(this.gui_objects[n]);=0A= =0A= // tell parent window that this frame is loaded=0A= if (this.env.framed && parent.rcmail && parent.rcmail.set_busy)=0A= parent.rcmail.set_busy(false);=0A= =0A= // enable general commands=0A= this.enable_command('logout', 'mail', 'addressbook', 'settings', = true);=0A= =0A= switch (this.task)=0A= {=0A= case 'mail':=0A= if (this.gui_objects.messagelist)=0A= {=0A= this.message_list =3D new = rcube_list_widget(this.gui_objects.messagelist, {multiselect:true, = draggable:true, keyboard:true, dblclick_time:this.dblclick_time});=0A= this.message_list.row_init =3D function(o){ = p.init_message_row(o); };=0A= this.message_list.addEventListener('dblclick', function(o){ = p.msglist_dbl_click(o); });=0A= this.message_list.addEventListener('keypress', function(o){ = p.msglist_keypress(o); });=0A= this.message_list.addEventListener('select', function(o){ = p.msglist_select(o); });=0A= this.message_list.addEventListener('dragstart', function(o){ = p.drag_active =3D true; });=0A= this.message_list.addEventListener('dragend', function(o){ = p.drag_active =3D false; });=0A= =0A= this.message_list.init();=0A= this.enable_command('toggle_status', true);=0A= =0A= if (this.gui_objects.mailcontframe)=0A= {=0A= this.gui_objects.mailcontframe.onmousedown =3D function(e){ = return p.click_on_list(e); };=0A= document.onmouseup =3D function(e){ return = p.doc_mouse_up(e); };=0A= }=0A= else=0A= this.message_list.focus();=0A= }=0A= =0A= if (this.env.coltypes)=0A= this.set_message_coltypes(this.env.coltypes);=0A= =0A= // enable mail commands=0A= this.enable_command('list', 'checkmail', 'compose', = 'add-contact', 'search', 'reset-search', true);=0A= =0A= if (this.env.search_text !=3D null && = document.getElementById('quicksearchbox') !=3D null)=0A= document.getElementById('quicksearchbox').value =3D = this.env.search_text;=0A= =0A= if (this.env.action=3D=3D'show' || = this.env.action=3D=3D'preview')=0A= {=0A= this.enable_command('show', 'reply', 'reply-all', 'forward', = 'moveto', 'delete', 'mark', 'viewsource', 'print', 'load-attachment', = true);=0A= if (this.env.next_uid)=0A= {=0A= this.enable_command('nextmessage', true);=0A= this.enable_command('lastmessage', true);=0A= }=0A= if (this.env.prev_uid)=0A= {=0A= this.enable_command('previousmessage', true);=0A= this.enable_command('firstmessage', true);=0A= }=0A= }=0A= =0A= if (this.env.trash_mailbox && this.env.mailbox !=3D = this.env.trash_mailbox)=0A= this.set_alttext('delete', 'movemessagetotrash');=0A= =0A= // make preview/message frame visible=0A= if (this.env.action =3D=3D 'preview' && this.env.framed && = parent.rcmail)=0A= {=0A= this.enable_command('compose', 'add-contact', false);=0A= parent.rcmail.show_contentframe(true);=0A= parent.rcmail.mark_message('read', this.env.uid);=0A= }=0A= =0A= if ((this.env.action=3D=3D'show' || = this.env.action=3D=3D'preview') && this.env.blockedobjects)=0A= {=0A= if (this.gui_objects.remoteobjectsmsg)=0A= this.gui_objects.remoteobjectsmsg.style.display =3D 'block';=0A= this.enable_command('load-images', true);=0A= }=0A= =0A= if (this.env.action=3D=3D'compose')=0A= {=0A= this.enable_command('add-attachment', 'send-attachment', = 'remove-attachment', 'send', true);=0A= if (this.env.spellcheck)=0A= {=0A= this.env.spellcheck.spelling_state_observer =3D function(s){ = ref.set_spellcheck_state(s); };=0A= this.set_spellcheck_state('ready');=0A= }=0A= if (this.env.drafts_mailbox)=0A= this.enable_command('savedraft', true);=0A= }=0A= =0A= if (this.env.messagecount)=0A= this.enable_command('select-all', 'select-none', 'sort', = 'expunge', true);=0A= =0A= if (this.env.messagecount && = (this.env.mailbox=3D=3Dthis.env.trash_mailbox || = this.env.mailbox=3D=3Dthis.env.junk_mailbox))=0A= this.enable_command('purge', true);=0A= =0A= this.set_page_buttons();=0A= =0A= // focus main window=0A= if (this.env.framed && window.parent)=0A= window.parent.focus();=0A= else=0A= window.focus();=0A= =0A= // init message compose form=0A= if (this.env.action=3D=3D'compose')=0A= this.init_messageform();=0A= =0A= // show printing dialog=0A= if (this.env.action=3D=3D'print')=0A= window.print();=0A= =0A= // get unread count for each mailbox=0A= if (this.gui_objects.mailboxlist)=0A= {=0A= this.gui_objects.folderlist =3D this.gui_objects.mailboxlist;=0A= this.http_request('getunread', '');=0A= }=0A= =0A= // ask user to send MDN=0A= if (this.env.mdn_request && this.env.uid)=0A= {=0A= var mdnurl =3D = '_uid=3D'+this.env.uid+'&_mbox=3D'+urlencode(this.env.mailbox);=0A= if (confirm(this.get_label('mdnrequest')))=0A= this.http_post('sendmdn', mdnurl);=0A= else=0A= this.http_post('mark', mdnurl+'&_flag=3Dmdnsent');=0A= }=0A= =0A= break;=0A= =0A= =0A= case 'addressbook':=0A= if (this.gui_objects.contactslist)=0A= {=0A= this.contact_list =3D new = rcube_list_widget(this.gui_objects.contactslist, {multiselect:true, = draggable:true, keyboard:true});=0A= this.contact_list.addEventListener('keypress', function(o){ = p.contactlist_keypress(o); });=0A= this.contact_list.addEventListener('select', function(o){ = p.contactlist_select(o); });=0A= this.contact_list.addEventListener('dragstart', function(o){ = p.drag_active =3D true; });=0A= this.contact_list.addEventListener('dragend', function(o){ = p.drag_active =3D false; });=0A= this.contact_list.init();=0A= =0A= if (this.env.cid)=0A= this.contact_list.highlight_row(this.env.cid);=0A= =0A= if (this.gui_objects.contactslist.parentNode)=0A= {=0A= this.gui_objects.contactslist.parentNode.onmousedown =3D = function(e){ return p.click_on_list(e); };=0A= document.onmouseup =3D function(e){ return = p.doc_mouse_up(e); };=0A= }=0A= else=0A= this.contact_list.focus();=0A= }=0A= =0A= this.set_page_buttons();=0A= =0A= if (this.env.address_sources && = !this.env.address_sources[this.env.source].readonly)=0A= this.enable_command('add', true);=0A= =0A= if (this.env.cid)=0A= this.enable_command('show', 'edit', true);=0A= =0A= if ((this.env.action=3D=3D'add' || this.env.action=3D=3D'edit') = && this.gui_objects.editform)=0A= this.enable_command('save', true);=0A= else=0A= this.enable_command('search', 'reset-search', 'moveto', true);=0A= =0A= this.enable_command('list', true);=0A= break;=0A= =0A= =0A= case 'settings':=0A= this.enable_command('preferences', 'identities', 'save', = 'folders', true);=0A= =0A= if (this.env.action=3D=3D'identities' || = this.env.action=3D=3D'edit-identity' || = this.env.action=3D=3D'add-identity')=0A= this.enable_command('edit', 'add', 'delete', true);=0A= =0A= if (this.env.action=3D=3D'edit-identity' || = this.env.action=3D=3D'add-identity')=0A= this.enable_command('save', true);=0A= =0A= if (this.env.action=3D=3D'folders')=0A= this.enable_command('subscribe', 'unsubscribe', = 'create-folder', 'rename-folder', 'delete-folder', true);=0A= =0A= if (this.gui_objects.identitieslist)=0A= {=0A= this.identity_list =3D new = rcube_list_widget(this.gui_objects.identitieslist, {multiselect:false, = draggable:false, keyboard:false});=0A= this.identity_list.addEventListener('select', function(o){ = p.identity_select(o); });=0A= this.identity_list.init();=0A= this.identity_list.focus();=0A= =0A= if (this.env.iid)=0A= this.identity_list.highlight_row(this.env.iid);=0A= }=0A= =0A= if (this.gui_objects.subscriptionlist)=0A= this.init_subscription_list();=0A= =0A= break;=0A= =0A= case 'login':=0A= var input_user =3D rcube_find_object('rcmloginuser');=0A= var input_pass =3D rcube_find_object('rcmloginpwd');=0A= if (input_user)=0A= input_user.onkeypress =3D function(e){ return = rcmail.login_user_keypress(e); };=0A= if (input_user && input_user.value=3D=3D'')=0A= input_user.focus();=0A= else if (input_pass)=0A= input_pass.focus();=0A= =0A= this.enable_command('login', true);=0A= break;=0A= =0A= default:=0A= break;=0A= }=0A= =0A= =0A= // enable basic commands=0A= this.enable_command('logout', true);=0A= =0A= // flag object as complete=0A= this.loaded =3D true;=0A= =0A= // show message=0A= if (this.pending_message)=0A= this.display_message(this.pending_message[0], = this.pending_message[1]);=0A= =0A= // start keep-alive interval=0A= this.start_keepalive();=0A= =0A= =0A= // execute all foreign onload scripts=0A= for (var i=3D0; i=3D0)=0A= {=0A= if (props.mimetype =3D=3D 'text/html')=0A= qstring +=3D '&_safe=3D1';=0A= this.attachment_win =3D = window.open(this.env.comm_path+'&_action=3Dget&'+qstring+'&_frame=3D1', = 'rcubemailattachment');=0A= if (this.attachment_win)=0A= {=0A= setTimeout(function(){ ref.attachment_win.focus(); }, 10);=0A= break;=0A= }=0A= }=0A= =0A= this.goto_url('get', qstring+'&_download=3D1', false);=0A= break;=0A= =0A= case 'select-all':=0A= this.message_list.select_all(props);=0A= break;=0A= =0A= case 'select-none':=0A= this.message_list.clear_selection();=0A= break;=0A= =0A= case 'nextmessage':=0A= if (this.env.next_uid)=0A= this.show_message(this.env.next_uid, false, = this.env.action=3D=3D'preview');=0A= break;=0A= =0A= case 'lastmessage':=0A= if (this.env.last_uid)=0A= this.show_message(this.env.last_uid);=0A= break;=0A= =0A= case 'previousmessage':=0A= if (this.env.prev_uid)=0A= this.show_message(this.env.prev_uid, false, = this.env.action=3D=3D'preview');=0A= break;=0A= =0A= case 'firstmessage':=0A= if (this.env.first_uid)=0A= this.show_message(this.env.first_uid);=0A= break;=0A= =0A= case 'checkmail':=0A= this.check_for_recent();=0A= break;=0A= =0A= case 'compose':=0A= var url =3D this.env.comm_path+'&_action=3Dcompose';=0A= =0A= if (this.task=3D=3D'mail' && = this.env.mailbox=3D=3Dthis.env.drafts_mailbox)=0A= {=0A= var uid;=0A= if (uid =3D this.get_single_uid())=0A= url +=3D = '&_draft_uid=3D'+uid+'&_mbox=3D'+urlencode(this.env.mailbox);=0A= }=0A= // modify url if we're in addressbook=0A= else if (this.task=3D=3D'addressbook')=0A= {=0A= // switch to mail compose step directly=0A= if (props && props.indexOf('@') > 0)=0A= {=0A= url =3D this.get_task_url('mail', url);=0A= this.redirect(url + '&_to=3D'+urlencode(props));=0A= break;=0A= }=0A= =0A= // use contact_id passed as command parameter=0A= var a_cids =3D new Array();=0A= if (props)=0A= a_cids[a_cids.length] =3D props;=0A= // get selected contacts=0A= else if (this.contact_list)=0A= {=0A= var selection =3D this.contact_list.get_selection();=0A= for (var n=3D0; n 0 ? true : false));=0A= }=0A= else=0A= {=0A= this.enable_command('show', 'reply', 'reply-all', 'forward', = 'print', selected);=0A= this.enable_command('delete', 'moveto', 'mark', = (list.selection.length > 0 ? true : false));=0A= }=0A= =0A= // start timer for message preview (wait for double click)=0A= if (selected && this.env.contentframe)=0A= this.preview_timer =3D setTimeout(function(){ = ref.msglist_get_preview(); }, this.dblclick_time + 10);=0A= else if (this.env.contentframe)=0A= this.show_contentframe(false);=0A= };=0A= =0A= =0A= this.msglist_dbl_click =3D function(list)=0A= {=0A= if (this.preview_timer)=0A= clearTimeout(this.preview_timer);=0A= =0A= var uid =3D list.get_single_selection();=0A= if (uid && this.env.mailbox =3D=3D this.env.drafts_mailbox)=0A= this.goto_url('compose', = '_draft_uid=3D'+uid+'&_mbox=3D'+urlencode(this.env.mailbox), true);=0A= else if (uid)=0A= this.show_message(uid, false, false);=0A= };=0A= =0A= =0A= this.msglist_keypress =3D function(list)=0A= {=0A= if (list.key_pressed =3D=3D list.ENTER_KEY)=0A= this.command('show');=0A= else if (list.key_pressed =3D=3D list.DELETE_KEY)=0A= this.command('delete');=0A= else=0A= list.shiftkey =3D false;=0A= };=0A= =0A= =0A= this.msglist_get_preview =3D function()=0A= {=0A= var uid =3D this.get_single_uid();=0A= if (uid && this.env.contentframe && !this.drag_active)=0A= this.show_message(uid, false, true);=0A= else if (this.env.contentframe)=0A= this.show_contentframe(false);=0A= };=0A= =0A= =0A= this.check_droptarget =3D function(id)=0A= {=0A= if (this.task =3D=3D 'mail')=0A= return (id !=3D this.env.mailbox);=0A= else if (this.task =3D=3D 'addressbook')=0A= return (id !=3D this.env.source && this.env.address_sources[id] && = !this.env.address_sources[id].readonly);=0A= else if (this.task =3D=3D 'settings')=0A= return (id !=3D this.env.folder);=0A= };=0A= =0A= =0A= /*********************************************************/=0A= /********* (message) list functionality *********/=0A= /*********************************************************/=0A= =0A= =0A= // when user doble-clicks on a row=0A= this.show_message =3D function(id, safe, preview)=0A= {=0A= var add_url =3D '';=0A= var action =3D preview ? 'preview': 'show';=0A= var target =3D window;=0A= if (preview && this.env.contentframe && window.frames && = window.frames[this.env.contentframe])=0A= {=0A= target =3D window.frames[this.env.contentframe];=0A= add_url =3D '&_framed=3D1';=0A= }=0A= =0A= if (safe)=0A= add_url =3D '&_safe=3D1';=0A= =0A= // also send search request to get the right messages=0A= if (this.env.search_request)=0A= add_url +=3D '&_search=3D'+this.env.search_request;=0A= =0A= if (id)=0A= {=0A= var url =3D = '&_action=3D'+action+'&_uid=3D'+id+'&_mbox=3D'+urlencode(this.env.mailbox= )+add_url;=0A= if (action =3D=3D 'preview' && = String(target.location.href).indexOf(url) >=3D 0)=0A= this.show_contentframe(true);=0A= else=0A= {=0A= this.set_busy(true, 'loading');=0A= target.location.href =3D this.env.comm_path+url;=0A= }=0A= }=0A= };=0A= =0A= =0A= this.show_contentframe =3D function(show)=0A= {=0A= var frm;=0A= if (this.env.contentframe && (frm =3D = rcube_find_object(this.env.contentframe)))=0A= {=0A= if (!show && window.frames[this.env.contentframe] && = frames[this.env.contentframe].location.href.indexOf(this.env.blankpage)<0= )=0A= frames[this.env.contentframe].location.href =3D = this.env.blankpage;=0A= if (!bw.safari)=0A= frm.style.display =3D show ? 'block' : 'none';=0A= }=0A= =0A= if (!show && this.busy)=0A= this.set_busy(false);=0A= };=0A= =0A= =0A= // list a specific page=0A= this.list_page =3D function(page)=0A= {=0A= if (page=3D=3D'next')=0A= page =3D this.env.current_page+1;=0A= if (page=3D=3D'last')=0A= page =3D this.env.pagecount;=0A= if (page=3D=3D'prev' && this.env.current_page>1)=0A= page =3D this.env.current_page-1;=0A= if (page=3D=3D'first' && this.env.current_page>1)=0A= page =3D 1;=0A= =0A= if (page > 0 && page <=3D this.env.pagecount)=0A= {=0A= this.env.current_page =3D page;=0A= =0A= if (this.task=3D=3D'mail')=0A= this.list_mailbox(this.env.mailbox, page);=0A= else if (this.task=3D=3D'addressbook')=0A= this.list_contacts(this.env.source, page);=0A= }=0A= };=0A= =0A= =0A= // list messages of a specific mailbox=0A= this.list_mailbox =3D function(mbox, page, sort)=0A= {=0A= this.last_selected =3D 0;=0A= var add_url =3D '';=0A= var target =3D window;=0A= =0A= if (!mbox)=0A= mbox =3D this.env.mailbox;=0A= =0A= // add sort to url if set=0A= if (sort)=0A= add_url +=3D '&_sort=3D' + sort;=0A= =0A= // also send search request to get the right messages=0A= if (this.env.search_request)=0A= add_url +=3D '&_search=3D'+this.env.search_request;=0A= =0A= // set page=3D1 if changeing to another mailbox=0A= if (!page && mbox !=3D this.env.mailbox)=0A= {=0A= page =3D 1;=0A= this.env.current_page =3D page;=0A= if (this.message_list)=0A= this.message_list.clear_selection();=0A= this.show_contentframe(false);=0A= }=0A= =0A= if (mbox !=3D this.env.mailbox || (mbox =3D=3D this.env.mailbox && = !page && !sort))=0A= add_url +=3D '&_refresh=3D1';=0A= =0A= this.select_folder(mbox, this.env.mailbox);=0A= this.env.mailbox =3D mbox;=0A= =0A= // load message list remotely=0A= if (this.gui_objects.messagelist)=0A= {=0A= this.list_mailbox_remote(mbox, page, add_url);=0A= return;=0A= }=0A= =0A= if (this.env.contentframe && window.frames && = window.frames[this.env.contentframe])=0A= {=0A= target =3D window.frames[this.env.contentframe];=0A= add_url +=3D '&_framed=3D1';=0A= }=0A= =0A= // load message list to target frame/window=0A= if (mbox)=0A= {=0A= this.set_busy(true, 'loading');=0A= target.location.href =3D = this.env.comm_path+'&_mbox=3D'+urlencode(mbox)+(page ? '&_page=3D'+page = : '')+add_url;=0A= }=0A= };=0A= =0A= =0A= // send remote request to load message list=0A= this.list_mailbox_remote =3D function(mbox, page, add_url)=0A= {=0A= // clear message list first=0A= this.message_list.clear();=0A= =0A= // send request to server=0A= var url =3D '_mbox=3D'+urlencode(mbox)+(page ? '&_page=3D'+page : = '');=0A= this.set_busy(true, 'loading');=0A= this.http_request('list', url+add_url, true);=0A= };=0A= =0A= =0A= this.expunge_mailbox =3D function(mbox)=0A= {=0A= var lock =3D false;=0A= var add_url =3D '';=0A= =0A= // lock interface if it's the active mailbox=0A= if (mbox =3D=3D this.env.mailbox)=0A= {=0A= lock =3D true;=0A= this.set_busy(true, 'loading');=0A= add_url =3D '&_reload=3D1';=0A= }=0A= =0A= // send request to server=0A= var url =3D '_mbox=3D'+urlencode(mbox);=0A= this.http_post('expunge', url+add_url, lock);=0A= };=0A= =0A= =0A= this.purge_mailbox =3D function(mbox)=0A= {=0A= var lock =3D false;=0A= var add_url =3D '';=0A= =0A= if (!confirm(this.get_label('purgefolderconfirm')))=0A= return false;=0A= =0A= // lock interface if it's the active mailbox=0A= if (mbox =3D=3D this.env.mailbox)=0A= {=0A= lock =3D true;=0A= this.set_busy(true, 'loading');=0A= add_url =3D '&_reload=3D1';=0A= }=0A= =0A= // send request to server=0A= var url =3D '_mbox=3D'+urlencode(mbox);=0A= this.http_post('purge', url+add_url, lock);=0A= return true;=0A= };=0A= =0A= =0A= // move selected messages to the specified mailbox=0A= this.move_messages =3D function(mbox)=0A= {=0A= // exit if current or no mailbox specified or if selection is empty=0A= if (!mbox || mbox =3D=3D this.env.mailbox || (!this.env.uid && = (!this.message_list || !this.message_list.get_selection().length)))=0A= return;=0A= =0A= var lock =3D false;=0A= var add_url =3D = '&_target_mbox=3D'+urlencode(mbox)+'&_from=3D'+(this.env.action ? = this.env.action : '');=0A= =0A= // show wait message=0A= if (this.env.action=3D=3D'show')=0A= {=0A= lock =3D true;=0A= this.set_busy(true, 'movingmessage');=0A= }=0A= else=0A= this.show_contentframe(false);=0A= =0A= // Hide message command buttons until a message is selected=0A= this.enable_command('reply', 'reply-all', 'forward', 'delete', = 'mark', 'print', false);=0A= =0A= this._with_selected_messages('moveto', lock, add_url);=0A= };=0A= =0A= // delete selected messages from the current mailbox=0A= this.delete_messages =3D function()=0A= {=0A= var selection =3D this.message_list ? = this.message_list.get_selection() : new Array();=0A= =0A= // exit if no mailbox specified or if selection is empty=0A= if (!this.env.uid && !selection.length)=0A= return;=0A= =0A= // if there is a trash mailbox defined and we're not currently in it:=0A= if (this.env.trash_mailbox && String(this.env.mailbox).toLowerCase() = !=3D String(this.env.trash_mailbox).toLowerCase())=0A= {=0A= // if shift was pressed delete it immediately=0A= if (this.message_list && this.message_list.shiftkey)=0A= {=0A= if (confirm(this.get_label('deletemessagesconfirm')))=0A= this.permanently_remove_messages();=0A= }=0A= else=0A= this.move_messages(this.env.trash_mailbox);=0A= }=0A= // if there is a trash mailbox defined but we *are* in it:=0A= else if (this.env.trash_mailbox && = String(this.env.mailbox).toLowerCase() =3D=3D = String(this.env.trash_mailbox).toLowerCase())=0A= this.permanently_remove_messages();=0A= // if there isn't a defined trash mailbox and the config is set to = flag for deletion=0A= else if (!this.env.trash_mailbox && this.env.flag_for_deletion)=0A= {=0A= this.mark_message('delete');=0A= if(this.env.action=3D=3D"show")=0A= this.command('nextmessage','',this);=0A= else if (selection.length =3D=3D 1)=0A= this.message_list.select_next();=0A= }=0A= // if there isn't a defined trash mailbox and the config is set NOT = to flag for deletion=0A= else if (!this.env.trash_mailbox) =0A= this.permanently_remove_messages();=0A= };=0A= =0A= =0A= // delete the selected messages permanently=0A= this.permanently_remove_messages =3D function()=0A= {=0A= // exit if no mailbox specified or if selection is empty=0A= if (!this.env.uid && (!this.message_list || = !this.message_list.get_selection().length))=0A= return;=0A= =0A= this.show_contentframe(false);=0A= this._with_selected_messages('delete', false, = '&_from=3D'+(this.env.action ? this.env.action : ''));=0A= };=0A= =0A= // Send a specifc request with UIDs of all selected messages=0A= // @private=0A= this._with_selected_messages =3D function(action, lock, add_url)=0A= {=0A= var a_uids =3D new Array();=0A= if (this.env.uid)=0A= a_uids[a_uids.length] =3D this.env.uid;=0A= else=0A= {=0A= var selection =3D this.message_list.get_selection();=0A= var id;=0A= for (var n=3D0; n 0)=0A= {=0A= rows[uid].classname =3D = rows[uid].classname.replace(/\s*deleted/, '');=0A= this.set_classname(rows[uid].obj, 'deleted', false);=0A= }=0A= if (rows[uid].unread && this.env.unreadicon)=0A= icn_src =3D this.env.unreadicon;=0A= else if (rows[uid].replied && this.env.repliedicon)=0A= icn_src =3D this.env.repliedicon;=0A= else if (this.env.messageicon)=0A= icn_src =3D this.env.messageicon;=0A= if (rows[uid].icon && icn_src)=0A= rows[uid].icon.src =3D icn_src;=0A= }=0A= }=0A= =0A= this.http_post('mark', = '_uid=3D'+a_uids.join(',')+'&_flag=3Dundelete');=0A= return true;=0A= };=0A= =0A= =0A= this.flag_as_deleted =3D function(a_uids)=0A= {=0A= // if deleting message from "view message" don't bother with delete = icon=0A= if (this.env.action =3D=3D "show")=0A= return false;=0A= =0A= var rows =3D this.message_list.rows;=0A= for (var i=3D0; i=3D0)=0A= message =3D message.substring(0, p-1) + = message.substring(p+sig.length, message.length);=0A= }=0A= =0A= // add the new signature string=0A= if (this.env.signatures && this.env.signatures[id])=0A= {=0A= sig =3D this.env.signatures[id]['text'];=0A= if (this.env.signatures[id]['is_html'])=0A= {=0A= sig =3D this.env.signatures[id]['plain_text'];=0A= }=0A= if (sig.indexOf('-- ')!=3D0)=0A= sig =3D '-- \n'+sig;=0A= message +=3D '\n'+sig;=0A= }=0A= }=0A= else=0A= {=0A= var eid =3D tinyMCE.getEditorId('_message');=0A= // editor is a TinyMCE_Control object=0A= var editor =3D tinyMCE.getInstanceById(eid);=0A= // if this is null, we should exit=0A= if (editor =3D=3D null) {=0A= return false;=0A= }=0A= var msgDoc =3D editor.getDoc();=0A= var msgBody =3D msgDoc.body;=0A= =0A= if (this.env.signatures && this.env.signatures[id])=0A= {=0A= // Append the signature as a span within the body=0A= var sigElem =3D msgDoc.getElementById("_rc_sig");=0A= if (!sigElem)=0A= {=0A= sigElem =3D msgDoc.createElement("span");=0A= sigElem.setAttribute("id", "_rc_sig");=0A= msgBody.appendChild(sigElem);=0A= }=0A= if (this.env.signatures[id]['is_html'])=0A= {=0A= sigElem.innerHTML =3D this.env.signatures[id]['text'];=0A= }=0A= else=0A= {=0A= sigElem.innerHTML =3D '
' + =
this.env.signatures[id]['text'] + '
';=0A= }=0A= }=0A= }=0A= =0A= if (input_message)=0A= input_message.value =3D message;=0A= =0A= this.env.identity =3D id;=0A= return true;=0A= };=0A= =0A= =0A= this.show_attachment_form =3D function(a)=0A= {=0A= if (!this.gui_objects.uploadbox)=0A= return false;=0A= =0A= var elm, list;=0A= if (elm =3D this.gui_objects.uploadbox)=0A= {=0A= if (a && (list =3D this.gui_objects.attachmentlist))=0A= {=0A= var pos =3D rcube_get_object_pos(list);=0A= var left =3D pos.x;=0A= var top =3D pos.y + list.offsetHeight + 10;=0A= =0A= elm.style.top =3D top+'px';=0A= elm.style.left =3D left+'px';=0A= }=0A= =0A= elm.style.visibility =3D a ? 'visible' : 'hidden';=0A= }=0A= =0A= // clear upload form=0A= try {=0A= if (!a && this.gui_objects.attachmentform !=3D = this.gui_objects.messageform)=0A= this.gui_objects.attachmentform.reset();=0A= }=0A= catch(e){} // ignore errors=0A= =0A= return true; =0A= };=0A= =0A= =0A= // upload attachment file=0A= this.upload_file =3D function(form)=0A= {=0A= if (!form)=0A= return false;=0A= =0A= // get file input fields=0A= var send =3D false;=0A= for (var n=3D0; n